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

MySQL đánh giá EXISTS như thế nào khi subquery trả về NULL?


Nếu subquery dùng với EXISTS trả về NULL, biểu thức EXISTS NULL trả về TRUE và MySQL trả về kết quả dựa trên truy vấn ngoài.

Ví dụ

Dữ liệu bảng Customers:

mysql> Select * from Customers;
+-------------+----------+
| Customer_Id | Name     |
+-------------+----------+
|           1 | Rahul    |
|           2 | Yashpal  |
|           3 | Gaurav   |
|           4 | Virender |
+-------------+----------+

Subquery trả về NULL:

mysql> SELECT Name from Customers Where EXISTS(Select NULL);
+----------+
| Name     |
+----------+
| Rahul    |
| Yashpal  |
| Gaurav   |
| Virender |
+----------+
4 rows in set (0.00 sec)

Giải thích: EXISTS (SELECT NULL) luôn trả về TRUE vì subquery có trả về một hàng (dù giá trị là NULL). EXISTS chỉ kiểm tra sự tồn tại của hàng, không quan tâm giá trị cột.