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

Sử dụng đúng dấu nháy đơn và backtick trong UPDATE MySQL

Quy tắc cơ bản

  • Dấu nháy đơn ': Dùng cho giá trị chuỗi (string literal), ví dụ: 'Chris', '2023-01-01'
  • Backtick `: Dùng cho định danh (identifier): tên bảng, cột, index, alias. Bắt buộc nếu trùng từ khóa hoặc chứa ký tự đặc biệt
  • Không dùng dấu: Cho số, NULL, từ khóa SQL, tên cột/bảng không trùng từ khóa

1. Tạo bảng (cột 'key' là từ khóa)

mysql> create table DemoTable1552 (
    -> `key` int,
    -> Name varchar(20)
    -> ); 
Query OK, 0 rows affected (0.82 sec)

2. Chèn dữ liệu

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)

3. Cập nhật đúng cú pháp

mysql> update DemoTable1552 set `key`=100 where Name='Chris'; 
Query OK, 1 row affected (0.20 sec)
Rows matched: 1 Changed: 1 Warnings: 0
  • `key`: Backtick vì 'key' là từ khóa
  • 'Chris': Dấu nháy đơn vì là giá trị chuỗi

4. Kết quả

mysql> select * from DemoTable1552;
+------+-------+
| key  | Name  |
+------+-------+
|  100 | Chris |
|  102 | David |
|  103 | Mike  |
+------+-------+
3 rows in set (0.00 sec)

Sai lầm thường gặp:

-- SAI: Dùng nháy đơn cho tên cột
UPDATE table SET 'column' = 'value';  -- Lỗi hoặc so sánh chuỗi

-- SAI: Dùng backtick cho giá trị chuỗi
UPDATE table SET `column` = `value`;  -- Lỗi: 'value' bị hiểu là cột

-- ĐÚNG
UPDATE `table` SET `column` = 'value';

Thói quen tốt: Luôn dùng backtick cho tất cả định danh trong code sản xuất.