Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

SELECT คอลัมน์ชื่อ from และ to (Reserved Words) ใน MySQL ต้องใช้ Backtick

การ Select คอลัมน์ที่เป็น Reserved Words (from, to)

คำว่า FROM และ TO เป็น **Reserved Words** ใน MySQL หากใช้เป็นชื่อคอลัมน์ ต้องห่อด้วย **Backtick (`)** ทุกครั้งที่อ้างอิง

Syntax

SELECT `to`, `from` FROM your_table_name;

ตัวอย่างการสร้างตารางและใช้งาน

สร้างตารางชื่อคอลัมน์เป็น from และ to:

mysql> CREATE TABLE DemoTable720 (
    `from` DATE,
    `to` DATE
);
Query OK, 0 rows affected (0.69 sec)

mysql> INSERT INTO DemoTable720 VALUES 
    ('2019-01-21', '2019-07-23'),
    ('2017-11-01', '2018-01-31'),
    ('2015-08-11', '2016-09-19');
Query OK, 3 rows affected

ข้อมูลทั้งหมด (SELECT * ทำงานได้เพราะไม่ระบุชื่อคอลัมน์):

mysql> SELECT * FROM DemoTable720;
+------------+------------+
| from       | to         |
+------------+------------+
| 2019-01-21 | 2019-07-23 |
| 2017-11-01 | 2018-01-31 |
| 2015-08-11 | 2016-09-19 |
+------------+------------+
3 rows in set (0.00 sec)

SELECT ระบุชื่อคอลัมน์ **ต้องใช้ Backtick**:

mysql> SELECT `to`, `from` FROM DemoTable720;
+------------+------------+
| to         | from       |
+------------+------------+
| 2019-07-23 | 2019-01-21 |
| 2018-01-31 | 2017-11-01 |
| 2016-09-19 | 2015-08-11 |
+------------+------------+
3 rows in set (0.00 sec)

Reserved Words ที่พบบ่อยและควรหลีกเลี่ยง/ใช้ Backtick

แนวทางปฏิบัติที่ดี (Best Practice)

  • **หลีกเลี่ยง** Reserved Words เป็น Identifier เลย
  • หากบังคับต้องใช้ → **Backtick ทุกครั้ง** (`from`, `to`)
  • ตั้งชื่อให้สื่อความหมาย: start_date, end_date, from_date, to_date
  • ใช้ Naming Convention: snake_case, ไม่ใช้ Space, ไม่ขึ้นต้นตัวเลข
คำความหมาย
SELECT, FROM, WHEREQuery Basics
ORDER, GROUP, BYSorting/Grouping
KEY, INDEX, PRIMARYConstraints
TABLE, DATABASE, VIEWObjects
LEFT, RIGHT, JOINJoins
TO, FROM, INTODirections
USER, PASSWORD, ROLESecurity
DATE, TIME, TIMESTAMPTypes