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

ทำไมคำสั่ง UPDATE ใน MySQL ต้องใช้เครื่องหมายอพอสโทรฟีเอียง (Backticks) สำหรับชื่อคอลัมน์

กฎทั่วไป: สตริง/ค่าคงที่ ใช้ single quotes 'value' | ตัวระบุชื่อ (Identifier) เช่น ชื่อตาราง ชื่อคอลัมน์ ใช้ backticks `name`

mysql> CREATE TABLE DemoTable1552 (
    -> `key` INT,
    -> Name VARCHAR(20)
    -> );
Query OK, 0 rows affected (0.82 sec)
mysql> INSERT INTO DemoTable1552 VALUES(101, 'Chris');
Query OK, 1 row affected (0.10 sec)
mysql> INSERT INTO DemoTable1552 VALUES(102, 'David');
Query OK, 1 row affected (0.28 sec)
mysql> INSERT INTO DemoTable1552 VALUES(103, 'Mike');
Query OK, 1 row affected (0.14 sec)
mysql> SELECT * FROM DemoTable1552;
+------+-------+
| key  | Name  |
+------+-------+
|  101 | Chris |
|  102 | David |
|  103 | Mike  |
+------+-------+
3 rows in set (0.00 sec)

อัปเดตคอลัมน์ key (คำสงวน) ต้องใช้ backticks, ค่า 'Chris' ใช้ single quotes:

mysql> UPDATE DemoTable1552 SET `key` = 100 WHERE Name = 'Chris';
Query OK, 1 row affected (0.20 sec)
mysql> SELECT * FROM DemoTable1552;
+------+-------+
| key  | Name  |
+------+-------+
|  100 | Chris |
|  102 | David |
|  103 | Mike  |
+------+-------+
3 rows in set (0.00 sec)

สรุป: Backticks สำหรับชื่อออบเจ็กต์ (Identifier), Single quotes สำหรับค่าสตริง (String literal)