Để kiểm tra xem một hàng có tồn tại trong bảng MySQL hay không, hãy sử dụng điều kiện EXISTS. Điều kiện này có thể dùng với truy vấn con (subquery). Nó trả về true (1) khi hàng tồn tại, ngược lại trả về false (0).
Tạo bảng minh họa
Trước tiên, tạo bảng ExistsRowDemo bằng lệnh CREATE TABLE:
mysql> CREATE TABLE ExistsRowDemo (
-> ExistId INT,
-> Name VARCHAR(100)
-> );
Query OK, 0 rows affected (0.53 sec)
Chèn dữ liệu mẫu
mysql> INSERT INTO ExistsRowDemo VALUES(100, 'John'); Query OK, 1 row affected (0.16 sec) mysql> INSERT INTO ExistsRowDemo VALUES(101, 'Bob'); Query OK, 1 row affected (0.17 sec) mysql> INSERT INTO ExistsRowDemo VALUES(103, 'Carol'); Query OK, 1 row affected (0.20 sec) mysql> INSERT INTO ExistsRowDemo VALUES(104, 'David'); Query OK, 1 row affected (0.13 sec)
Xem dữ liệu trong bảng
mysql> SELECT * FROM ExistsRowDemo;
Kết quả:
+---------+-------+ | ExistId | Name | +---------+-------+ | 100 | John | | 101 | Bob | | 103 | Carol | | 104 | David | +---------+-------+ 4 rows in set (0.00 sec)
Cú pháp kiểm tra sự tồn tại
SELECT EXISTS(SELECT * FROM ten_bang WHERE dieu_kien);
Trường hợp 1: Hàng tồn tại
mysql> SELECT EXISTS(SELECT * FROM ExistsRowDemo WHERE ExistId = 104);
Kết quả:
+------------------------------------------------------+ | EXISTS(SELECT * FROM ExistsRowDemo WHERE ExistId=104)| +------------------------------------------------------+ | 1 | +------------------------------------------------------+ 1 row in set (0.00 sec)
Giá trị 1 cho thấy hàng tồn tại (TRUE).
Trường hợp 2: Hàng không tồn tại
mysql> SELECT EXISTS(SELECT * FROM ExistsRowDemo WHERE ExistId = 105);
Kết quả:
+------------------------------------------------------+ | EXISTS(SELECT * FROM ExistsRowDemo WHERE ExistId=105)| +------------------------------------------------------+ | 0 | +------------------------------------------------------+ 1 row in set (0.00 sec)
Giá trị 0 cho thấy hàng không tồn tại (FALSE).