Computer >> Máy Tính >  >> Lập trình >> MySQL

MySQL đánh giá như thế nào nếu chúng ta sử dụng toán tử EXISTS với một truy vấn con không trả về hàng nào?


Nếu truy vấn con, được sử dụng với toán tử EXIST, không trả về hàng nào, biểu thức EXIST trả về FALSE và MySQL trả về tập hợp trống làm đầu ra. Nó có thể được hiểu với sự trợ giúp của ví dụ đơn giản bằng cách sử dụng dữ liệu sau từ bảng "Khách hàng" -

mysql> Select * from Customers;
+-------------+----------+
| Customer_Id | Name     |
+-------------+----------+
|           1 | Rahul    |
|           2 | Yashpal  |
|           3 | Gaurav   |
|           4 | Virender |
+-------------+----------+
4 rows in set (0.00 sec)

mysql> Select * from Reservations;
+------+-------------+------------+
| ID   | Customer_id | Day        |
+------+-------------+------------+
|    1 |           1 | 2017-12-30 |
|    2 |           2 | 2017-12-28 |
|    3 |           2 | 2017-12-29 |
|    4 |           1 | 2017-12-25 |
|    5 |           3 | 2017-12-26 |
+------+-------------+------------+
5 rows in set (0.00 sec)

Truy vấn MySQL bên dưới có truy vấn con với toán tử EXIST trả về không có hàng nào. Trong trường hợp này, biểu thức EXIST trả về FALSE do đó tập kết quả là tập hợp rỗng.

mysql> Select Name from Customers WHERE EXISTS (SELECT * FROM Reservations WHERE customer_id = 4);
Empty set (0.00 sec)