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

ตรวจสอบค่า NULL ใน MySQL ด้วย IF()

การตรวจสอบและจัดการค่า NULL ใน MySQL ด้วย IF()

ใช้ฟังก์ชัน IF(condition, value_if_true, value_if_false) เพื่อตรวจสอบ IS NULL และแสดงข้อความ/ค่าแทน

ตัวอย่างการใช้งาน

สร้างตารางและเพิ่มข้อมูลมี NULL:

mysql> create table DemoTable (Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, Name varchar(200), Age int);
mysql> insert into DemoTable(Name,Age) values('John',23);
mysql> insert into DemoTable(Name,Age) values('Sam',NULL);
mysql> insert into DemoTable(Name,Age) values('Mike',23);
mysql> insert into DemoTable(Name,Age) values('David',21);
mysql> insert into DemoTable(Name,Age) values('Carol',NULL);

ข้อมูล:

+----+-------+------+
| Id | Name  | Age  |
+----+-------+------+
| 1  | John  | 23   |
| 2  | Sam   | NULL |
| 3  | Mike  | 23   |
| 4  | David | 21   |
| 5  | Carol | NULL |
+----+-------+------+

คิวรีตรวจสอบ NULL แสดงข้อความ:

mysql> select if(Age IS NULL, 'Age is missing', Age) from DemoTable;
+--------------------------------------+
| if(Age IS NULL, 'Age is missing', Age) |
+--------------------------------------+
| 23                                   |
| Age is missing                       |
| 23                                   |
| 21                                   |
| Age is missing                       |
+--------------------------------------+

ฟังก์ชันเกี่ยวข้อง:

  • IFNULL(expr, val) - คืน val หาก expr เป็น NULL (Short form: IFNULL(Age, 'Missing'))
  • COALESCE(val1, val2, ...) - คืนค่าแรกที่ไม่ใช่ NULL (มาตรฐาน SQL, รองรับหลายค่า)
  • NULLIF(val1, val2) - คืน NULL หาก val1 = val2
  • IS NULL / IS NOT NULL - เงื่อนไขใน WHERE

แนะนำ: ใช้ COALESCE สำหรับ Fallback หลายระดับ | ใช้ IFNULL สำหรับกรณีง่าย 1 ค่า | ใช้ IF สำหรับ Logic ซับซ้อน/แสดงข้อความ