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

Cập nhật cột MySQL có dấu chấm (.) trong tên cột

Vấn đề

Tên cột chứa ký tự đặc biệt (dấu chấm, khoảng trắng, từ khóa) phải dùng backticks `.

Cú pháp

UPDATE bang SET `ten.cot.cham` = 'gia_tri' WHERE dieu_kien;

Ví dụ: Cột tên `User.FirstName.LastName`

Tạo bảng

mysql> CREATE TABLE UpdateDemo (
    UserId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    `User.FirstName.LastName` VARCHAR(60)
);

Dữ liệu

+--------+-------------------------+
| UserId | User.FirstName.LastName |
+--------+-------------------------+
| 1      | John Smith              |
| 2      | Adam Smith              |
| 3      | Carol Taylor            |
| 4      | Mitchell Johnson        |
| 5      | David Brown             |
| 6      | Larry Miller            |
+--------+-------------------------+

UPDATE có backticks

mysql> UPDATE UpdateDemo 
    -> SET `User.FirstName.LastName` = 'David Miller' 
    -> WHERE UserId = 5;

Kết quả

+--------+-------------------------+
| UserId | User.FirstName.LastName |
+--------+-------------------------+
| 5      | David Miller            |  -- Đã cập nhật
+--------+-------------------------+

Các trường hợp cần backticks

  • Chứa ký tự đặc biệt: . - @ #...
  • Trùng từ khóa: SELECT, ORDER, GROUP, INDEX...
  • Bắt đầu bằng số: 123col
  • Chứa Unicode: tên_cột, 列名

Best Practice

  • Luôn dùng backticks cho identifier (bảng, cột, index, alias) trong code production
  • Tránh đặt tên cột có ký tự đặc biệt / từ khóa
  • Dùng naming convention: snake_case (user_first_name_last_name)
  • ORM/query builder tự động escape identifier

Lưu ý: Backtick ` khác single quote '. Single quote cho string literal, backtick cho identifier.