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

ตรวจสอบว่าฟิลด์ว่างหรือเป็นโมฆะใน MySQL หรือไม่


ค่า NULL และสตริงว่าง ' ' ทั้งคู่ไม่เหมือนกันใน MySQL หากต้องการตรวจสอบว่าฟิลด์ว่างเปล่า เช่น ' ' หรือเป็นค่าว่าง คุณต้องใช้คุณสมบัติ IS NULL หรืออย่างอื่น คุณสามารถตรวจสอบเงื่อนไขทั้งหมดได้ด้วยคำสั่ง CASE ไวยากรณ์มีดังนี้:

เลือก *, CASEWHEN yourColumnName =' ' แล้ว 'yourMessage1' เมื่อ yourColumnName เป็น NULL แล้ว 'yourMessage2'ELSE CONCAT(yourColumnName ,' is a Name')END AS anyVariableNameFROM yourTableName;

เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้:

mysql> สร้างตาราง checkFieldDemo -> ( -> Id int ไม่ใช่ NULL AUTO_INCREMENT, -> Name varchar(10), -> PRIMARY KEY(Id) -> );Query OK, 0 แถวได้รับผลกระทบ (0.64 วินาที) 

แทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้:

mysql> แทรกลงในค่า checkFieldDemo (ชื่อ) (NULL) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.17 วินาที) mysql> แทรกลงในค่า checkFieldDemo (ชื่อ) ('John'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.15 วินาที )mysql> แทรกลงในค่า checkFieldDemo (ชื่อ) (NULL) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.10 วินาที) mysql> แทรกลงในค่า checkFieldDemo (ชื่อ) (''); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.51 วินาที) mysql> แทรกลงในค่า checkFieldDemo (ชื่อ) ('Carol'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.14 วินาที) mysql> แทรกลงในค่า checkFieldDemo (ชื่อ) (''); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.17 วินาที) mysql> แทรก ลงใน checkFieldDemo(ชื่อ) ค่า (NULL);แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.10 วินาที)

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

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

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

<ก่อนหน้า>+----+-------+| รหัส | ชื่อ |+---+-------+| 1 | NULL || 2 | จอห์น || 3 | NULL || 4 | || 5 | แครอล || 6 | || 7 | NULL |+----+-------+7 แถวในชุด (0.00 วินาที)

นี่คือคิวรีเพื่อตรวจสอบฟิลด์ว่างเปล่าหรือเป็นโมฆะหรืออย่างอื่นโดยใช้คำสั่ง case แบบสอบถามมีดังนี้:

mysql> เลือก *, case -> when Name='' จากนั้น 'It is an empty string' -> เมื่อ Name เป็น null แล้ว 'It is a NULL value' -> else concat(Name,' is a Name' ) -> END เป็น ListOfValues ​​-> จาก checkFieldDemo;

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

<ก่อนหน้า>+----+---------+----------------------+| รหัส | ชื่อ | ListOfValues ​​|+----+-------+--------------------------------------| 1 | NULL | เป็นค่า NULL || 2 | จอห์น | จอห์นเป็นชื่อ || 3 | NULL | เป็นค่า NULL || 4 | | เป็นสตริงว่าง || 5 | แครอล | แครอลเป็นชื่อ || 6 | | เป็นสตริงว่าง || 7 | NULL | เป็นค่า NULL |+----+-------+----------------------+7 แถวในชุด (0.00 วินาที)