Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

MySQL ประเมิน EXISTS กับ Subquery ที่คืน NULL อย่างไร


ถ้า Subquery ที่ใช้กับ EXISTS คืน NULL แล้ว EXISTS NULL จะเป็น TRUE และ MySQL คืนผลตาม Outer Query ตัวอย่าง:

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

สรุป: EXISTS (SELECT NULL) เป็น TRUE เสมอ เพราะ Subquery "มีแถว" (แถวที่มีค่า NULL) จึงคืนทุกแถวของ Outer Query