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
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.