การตรวจสอบและจัดการค่า 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 = val2IS NULL / IS NOT NULL- เงื่อนไขใน WHERE
แนะนำ: ใช้ COALESCE สำหรับ Fallback หลายระดับ | ใช้ IFNULL สำหรับกรณีง่าย 1 ค่า | ใช้ IF สำหรับ Logic ซับซ้อน/แสดงข้อความ