Tóm tắt
Dùng EXISTS (SELECT 1 FROM bang) trả về 1 (có hàng) hoặc 0 (rỗng) – tối ưu, dừng sớm như LIMIT 1.
Cú pháp
SELECT EXISTS(SELECT 1 FROM ten_bang) AS Output;
Ví dụ
1. Tạo bảng và chèn dữ liệu
CREATE TABLE ReturnDemo (Id INT, Name VARCHAR(10));
INSERT INTO ReturnDemo VALUES (100,'Larry'), (101,'Bob'), (102,'Sam');
2. Kiểm tra
SELECT EXISTS(SELECT 1 FROM ReturnDemo) AS Output;
3. Kết quả
+--------+
| Output |
+--------+
| 1 |
+--------+
Output = 1 → bảng **không rỗng**. Output = 0 → bảng **rỗng**.
So sánh các phương pháp
| Phương pháp | Cú pháp | Hiệu năng | Kết quả |
|---|---|---|---|
| EXISTS | SELECT EXISTS(SELECT 1 FROM t) | Rất nhanh (dừng sớm) | 1/0 |
| LIMIT 1 | SELECT 1 FROM t LIMIT 1 | Rất nhanh | 1 hàng / 0 hàng |
| COUNT(*) | SELECT COUNT(*) FROM t | Chậm (quét toàn bộ) | Số lượng |
Khi nào dùng EXISTS?
- Trong subquery:
WHERE EXISTS (SELECT 1 FROM b WHERE b.a_id = a.id) - Cần giá trị boolean 1/0 để dùng tiếp trong biểu thức.
- Code rõ ràng ý định "kiểm tra tồn tại".