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

Cách tốt nhất để kiểm tra xem một hàng có tồn tại trong bảng MySQL không

Để 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).