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

MySQL ใดส่งคืนเมื่อเราใช้ส่วนคำสั่ง DISTINCT กับคอลัมน์ที่มีค่า NULL หลายค่า


เมื่อเราใช้อนุประโยค DISTINCT ในคอลัมน์ที่มีค่า NULL หลายค่า MySQL ถือว่าค่า NULL เหมือนกัน

หมายความว่าตามคุณสมบัติของอนุประโยค DISTINCT นั้น MySQL จะส่งคืนค่า NULL เพียงค่าเดียวในชุดผลลัพธ์และกำจัดค่าอื่นๆ ลองพิจารณาตัวอย่างของตารางที่ชื่อว่า 'การทดสอบ' ซึ่งมีค่า NULL หลายค่าในคอลัมน์ 'Lname'

mysql> Select * from testing;
+------+---------+---------+
| id   | fname   | Lname   |
+------+---------+---------+
|  200 | Raman   | Kumar   |
|  201 | Sahil   | Bhalla  |
|  202 | Gaurav  | NULL    |
|  203 | Aarav   | NULL    |
|  204 | Harshit | Khurana |
|  205 | Rahul   | NULL    |
|  206 | Piyush  | Kohli   |
|  207 | Lovkesh | NULL    |
+-----+---------+----------+
8 rows in set (0.00 sec)

mysql> SELECT DISTINCT Lname from testing;
+---------+
| Lname   |
+---------+
| Kumar   |
| Bhalla  |
| NULL    |
| Khurana |
| Kohli   |
+---------+
5 rows in set (0.00 sec)

จากข้อความค้นหาด้านบน จะเห็นได้ว่า MySQL ส่งคืนค่า NULL เพียงตัวเดียวและกำจัดค่าอื่นๆ ออกเมื่อเราใช้คำสั่งย่อย DISTINCT ในคอลัมน์ 'Lname' ที่มีค่า NULL สี่ค่า