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

Có thể dùng backtick với giá trị cột trong MySQL không?

Không. Backtick (`) chỉ dùng cho identifier (tên bảng, tên cột, tên database), không dùng cho giá trị chuỗi (string literal).

Minh họa lỗi

mysql> CREATE TABLE DemoTable6 (SystemIPAddress VARCHAR(200));
mysql> INSERT INTO DemoTable6 VALUES('192.68.1.0'), ('191.23.41.10');

Sai: Dùng backtick cho giá trị

mysql> SELECT * FROM DemoTable6 WHERE SystemIPAddress = `191.23.41.10`;
ERROR 1054 (42S22): Unknown column '191.23.41.10' in 'where clause'

MySQL hiểu `191.23.41.10` là tên cột, không phải chuỗi.

Đúng: Dùng nháy đơn cho giá trị chuỗi

mysql> SELECT * FROM DemoTable6 WHERE SystemIPAddress = '191.23.41.10';
+-----------------+
| SystemIPAddress |
+-----------------+
| 191.23.41.10    |
+-----------------+

Quy tắc sử dụng Backtick

Đối tượngDùng backtick?Ví dụ
Tên bảngCó (khuyên dùng)SELECT * FROM `my-table`
Tên cộtCó (khuyên dùng)SELECT `col-name` FROM t
Tên databaseCóUSE `my-db`
Tên aliasCóSELECT col AS `my alias`
Giá trị chuỗiKHÔNGWHERE col = 'value'
Số, ngày, NULLKHÔNGWHERE id = 10

Tại sao khuyên dùng backtick cho identifier?

  • Tránh xung đột từ khóa reserved (ví dụ: SELECT * FROM `select`)
  • Hỗ trợ ký tự đặc biệt, khoảng trắng trong tên (`col name`)
  • Tăng tính đọc hiểu, phân biệt identifier vs string literal

ANSI SQL Standard

Chuẩn SQL dùng nháy kép (") cho identifier. MySQL hỗ trợ cả hai nếu bật ANSI_QUOTES mode.