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

Chọn cột có tên chứa dấu asterisk (*) trong MySQL với backtick

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: