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

ไวยากรณ์ MySQL ไม่ประเมินด้วยโอเปอเรเตอร์ไม่เท่ากันต่อหน้าเป็นโมฆะ?


ใช้ตัวดำเนินการ IS NOT NULL เพื่อเปรียบเทียบกับค่า NULL ไวยากรณ์มีดังนี้ −

SELECT *FROM yourTableName โดยที่ yourColumnName1 ไม่เป็น null หรือ yourColumnName2 <> anyIntegerValue;

ในการตรวจสอบค่าไม่เท่ากับเมื่อมี null ให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้ −

mysql> สร้างตาราง IsNullDemo −> ( −> ProductId int, −> ProductName varchar(100), −> ProductBackOrder int −> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.54 วินาที)

แทรกบางระเบียนในตารางที่มีค่า null เพื่อหลีกเลี่ยงไม่ให้มี null แบบสอบถามเพื่อแทรกระเบียนมีดังนี้ -

mysql> แทรกลงในค่า IsNullDemo (100,'First-Product',null);Query OK, 1 แถวได้รับผลกระทบ (0.14 วินาที)mysql> แทรกลงในค่า IsNullDemo (101,'Second-Product',2);Query ตกลง 1 แถวได้รับผลกระทบ (0.22 วินาที) mysql> แทรกลงในค่า IsNullDemo (102, 'ผลิตภัณฑ์ที่สาม', null); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.20 วินาที) mysql> แทรกลงในค่า IsNullDemo (103, 'ผลิตภัณฑ์ที่สี่' ',4);แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.17 วินาที)mysql> แทรกลงในค่า IsNullDemo (104,'Fifth-Product',10); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.17 วินาที)mysql> แทรกลงในค่า IsNullDemo ( 105,'Sixth-Product',null);Query OK, 1 แถวได้รับผลกระทบ (0.20 วินาที)

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

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

ต่อไปนี้เป็นผลลัพธ์ -

<ก่อนหน้า>+-----------+------------------------------------------ -+| ProductId | ชื่อสินค้า | ProductBackOrder |+--------------------------------------------------------------------- +| 100 | First-Product | NULL || 101 | Second-Product | 2 || 102 | สินค้าที่สาม | NULL || 103 | สินค้าที่สี่ | 4 || 104 | Fifth-Product | 10 || 105 | Sixth-Product | NULL |+-----------+------------------------------------------ +6 แถวในชุด (0.00 วินาที)

กรณีที่ 1:

นี่คือแบบสอบถามเพื่อหลีกเลี่ยงการมีอยู่ของโมฆะ แบบสอบถามมีดังนี้ −

mysql> เลือก *จาก IsNullDemo −> โดยที่ ProductBackOrder ไม่ใช่ null หรือ ProductBackOrder <> 2;

ต่อไปนี้เป็นผลลัพธ์ -

<ก่อนหน้า>+-----------+------------------------------------------ -+| ProductId | ชื่อสินค้า | ProductBackOrder |+--------------------------------------------------------------------- +| 101 | Second-Product | 2 || 103 | สินค้าที่สี่ | 4 || 104 | Fifth-Product | 10 |+----------+--------------------------------------------- +3 แถวในชุด (0.03 วินาที)

กรณีที่ 2:

เมื่อใดก็ตามที่คุณต้องการให้มีค่าว่าง (หรือไม่เท่ากับ 2) ให้ใช้แนวคิด IS NULL แบบสอบถามมีดังนี้ −

mysql> เลือก *จาก IsNullDemo −> โดยที่ ProductBackOrder เป็น null หรือ ProductBackOrder <> 2;

ต่อไปนี้เป็นผลลัพธ์ -

<ก่อนหน้า>+-----------+------------------------------------------ -+| ProductId | ชื่อสินค้า | ProductBackOrder |+--------------------------------------------------------------------- +| 100 | First-Product | NULL || 102 | สินค้าที่สาม | NULL || 103 | สินค้าที่สี่ | 4 || 104 | Fifth-Product | 10 || 105 | Sixth-Product | NULL |+-----------+------------------------------------------ +5 แถวในชุด (0.00 วินาที)