Để 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 tồn tại. Điều kiện tồn tại có thể được sử dụng với truy vấn con. Nó trả về true khi hàng tồn tại trong bảng, nếu không, false sẽ được trả về. True được biểu thị dưới dạng 1 và false được biểu diễn dưới dạng 0.
Để hiểu rõ hơn, trước hết chúng ta sẽ tạo một bảng với sự trợ giúp của lệnh CREATE, sau đây là truy vấn để tạo bảng -
mysql> CREATE table ExistsRowDemo -> ( -> ExistId int, -> Name varchar(100) -> ); Query OK, 0 rows affected (0.53 sec)
Sau khi tạo bảng thành công, chúng tôi sẽ chèn một số bản ghi với sự trợ giúp của lệnh INSERT. Truy vấn để chèn bản ghi vào bảng -
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)
Sau khi chèn tất cả các bản ghi, chúng ta có thể hiển thị chúng với sự trợ giúp của lệnh SELECT, như sau -
mysql> SELECT * from ExistsRowDemo;
Sau đây là kết quả -
+---------+-------+ | ExistId | Name | +---------+-------+ | 100 | John | | 101 | Bob | | 103 | Carol | | 104 | David | +---------+-------+ 4 rows in set (0.00 sec)
Chúng tôi đã thêm một số bản ghi vào bảng. Cú pháp để kiểm tra xem một hàng có tồn tại trong bảng hay không với sự trợ giúp của điều kiện EXISTS như sau -
SELECT EXISTS(SELECT * FROM yourTableName WHERE yourCondition);
Tôi đang áp dụng truy vấn trên để nhận được kết quả -
Note: Firstly, I am considering the condition when row exists in the table. After that, the condition will be mentioned when a row does not exist.
Trường hợp 1
Trong trường hợp này, tôi đang đưa ra một điều kiện khi hàng tồn tại. Hãy để chúng tôi áp dụng cú pháp trên để kiểm tra xem hàng có tồn tại hay không.
mysql> SELECT EXISTS(SELECT * from ExistsRowDemo WHERE ExistId=104);
Sau đây là kết quả -
+------------------------------------------------------+ | EXISTS(SELECT * from ExistsRowDemo WHERE ExistId=104)| +------------------------------------------------------+ | 1 | +------------------------------------------------------+ 1 row in set (0.00 sec)
Từ kết quả mẫu ở trên, rõ ràng là hàng tồn tại, vì giá trị chúng tôi nhận được là 1. Điều này có nghĩa là TRUE!
Trường hợp 2
Trong trường hợp này, tôi giải thích điều kiện khi hàng không tồn tại. Áp dụng truy vấn trên.
mysql> SELECT EXISTS(SELECT * from ExistsRowDemo WHERE ExistId=105);
Sau đây là kết quả -
+------------------------------------------------------+ | EXISTS(SELECT * from ExistsRowDemo WHERE ExistId=105)| +------------------------------------------------------+ | 0 | +------------------------------------------------------+ 1 row in set (0.00 sec)
Từ kết quả đầu ra ở trên, chúng ta có thể thấy kết quả đầu ra là 0, tức là sai (không tồn tại hàng).