Vấn đề
Tên cột chứa ký tự đặc biệt (như *, khoảng trắng, ký tự Unicode) không thể dùng trực tiếp trong truy vấn, phải bao quanh bằng backtick `.
1. Tạo bảng với cột `Name*`
mysql> create table DemoTable (
-> `Name*` varchar(20)
-> );
Query OK, 0 rows affected (2.03 sec)
2. Chèn dữ liệu
mysql> insert into DemoTable(`Name*`) values('Chris Brown');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable(`Name*`) values('David Miller');
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable(`Name*`) values('John Doe');
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable(`Name*`) values('John Smith');
Query OK, 1 row affected (0.23 sec)
3. Truy vấn chọn cột
mysql> select `Name*` from DemoTable;
4. Kết quả
+--------------+ | Name* | +--------------+ | Chris Brown | | David Miller | | John Doe | | John Smith | +--------------+ 4 rows in set (0.00 sec)
Quy tắc backtick:
- Bắt buộc cho tên chứa: khoảng trắng, ký tự đặc biệt (!@#$%^&*()...), từ khóa SQL, bắt đầu bằng số
- Khuyên dùng cho TẤT CẢ định danh (bảng, cột, index, alias) trong code production
- Không dùng cho giá trị chuỗi (dùng nháy đơn ')
Ví dụ khác cần backtick: