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

ความแตกต่างระหว่าง MySql <> NULL และไม่ใช่ NULL?


หากคุณเปรียบเทียบตัวดำเนินการ <> กับค่า NULL คุณจะได้รับค่า NULL เสมอและไม่มีผลลัพธ์

เรามาดูตัวอย่างเพื่อเปรียบเทียบกัน −

mysql> เลือก 10 <> NULL;+-----------+| 10 <> NULL |+-----------+| NULL |+------------+1 แถวในชุด (0.00 วินาที)mysql> เลือก NULL <> NULL;+-------------+| NULL <> NULL |+--------------+| NULL |+---------------------+1 แถวในชุด (0.00 วินาที) mysql> เลือก 'Chris' <> NULL;+------------- ----+| 'คริส' <> NULL |+-----------------+| NULL |+-----------------+1 แถวในชุด (0.00 วินาที)mysql> เลือก '' <> NULL;+----------- -+| '' <> NULL |+-----------+| NULL |+------------+1 แถวในชุด (0.00 วินาที)

ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable846(Value int);ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.93 วินาที)

แทรกระเบียนบางส่วนในตารางโดยใช้คำสั่ง insert -

mysql> แทรกลงในค่า DemoTable846 (NULL) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงในค่า DemoTable846 (10) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.11 วินาที)

แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select -

mysql> เลือก *จาก DemoTable846;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+-------+| ความคุ้มค่า |+-------+| NULL || 10 |+-------+2 แถวในชุด (0.00 วินาที)

ต่อไปนี้เป็นผลลัพธ์สำหรับตัวดำเนินการ IS NOT NULL -

mysql> เลือก *จาก DemoTable846 โดยที่ค่าไม่เป็นค่าว่าง

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+-------+| ความคุ้มค่า |+-------+| 10 |+------- +1 แถวในชุด (0.00 วินาที)

นี่คือผลลัพธ์สำหรับตัวดำเนินการ <> ต่อไปนี้เป็นแบบสอบถาม -

mysql> เลือก *จาก DemoTable846 โดยที่ Value <> NULL; ชุดว่าง (0.00 วินาที)