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

MySQL: LIMIT 0 được phép trong SELECT - Tại sao và dùng khi nào?

LIMIT 0 trong MySQL trả về tập rỗng (empty set) nhưng vẫn hợp lệ. Có 2 trường hợp sử dụng chính:

1. Kiểm tra tính hợp lệ của truy vấn (validate query)

Khi phát triển ứng dụng, bạn có thể chạy SELECT ... LIMIT 0 để kiểm tra cú pháp, tên cột, tên bảng đúng mà không trả về dữ liệu thực. Hữu ích cho các ORM/query builder.

2. Lấy metadata (kiểu cột) qua API

Một số MySQL API (như JDBC, Connector/NET) dùng LIMIT 0 để lấy thông tin cột (tên, kiểu dữ liệu) mà không tốn chi phí truyền dữ liệu.

Tài liệu tham khảo

MySQL LIMIT Optimization

Ví dụ minh họa

Tạo bảng 10 bản ghi:

mysql> CREATE TABLE Limit0Demo (Id INT AUTO_INCREMENT PRIMARY KEY, Ten VARCHAR(20));
mysql> INSERT INTO Limit0Demo(Ten) VALUES ('David'),('Larry'),('Carol'),('Bob'),('John'),('Sam'),('James'),('Maxwell'),('Ricky'),('Adam');

CASE 1: LIMIT 0 → Empty set

mysql> SELECT * FROM Limit0Demo LIMIT 0;
Empty set (0.00 sec)

CASE 2: LIMIT 3 → 3 bản ghi đầu

mysql> SELECT * FROM Limit0Demo LIMIT 3;
+----+-------+
| Id | Ten   |
+----+-------+
| 1  | David |
| 2  | Larry |
| 3  | Carol |
+----+-------+

Lưu ý: LIMIT 0 khác với WHERE 1=0 (cũng trả empty set nhưng vẫn quét bảng). LIMIT 0 dừng ngay sau khi xác thực truy vấn.