Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Tại sao backtick không hoạt động trong phần SET của UPDATE MySQL? (Cách viết đúng)

Cú pháp đúng với backtick

UPDATE `yourTableName`
SET `yourTableName`.`yourColumnName` = 'yourNewValue'
WHERE yourCondition;

Ví dụ minh họa

mysql> CREATE TABLE `DemoTable_1401` (Name VARCHAR(20));
INSERT INTO `DemoTable_1401` VALUES('Chris'),('David'),('Bob');

Dữ liệu

mysql> SELECT * FROM `DemoTable_1401`;
+-------+
| Name  |
+-------+
| Chris |
| David |
| Bob   |
+-------+

UPDATE đúng: backtick bảng.cột trong SET

mysql> UPDATE `DemoTable_1401`
    -> SET `DemoTable_1401`.`Name` = 'Adam'
    -> WHERE `Name` = 'David';
Query OK, 1 row affected (0.15 sec)

Kết quả

mysql> SELECT * FROM `DemoTable_1401`;
+-------+
| Name  |
+-------+
| Chris |
| Adam  |
| Bob   |
+-------+

Nguyên nhân lỗi thường gặp: Viết SET `Name` = ... mà không tiền tố bảng, hoặc dùng backtick sai chỗ. MySQL cho phép `table`.`column` trong SET để tránh nhầm lẫn khi JOIN nhiều bảng.