ฟังก์ชัน ISNULL() ใน MySQL ใช้เพื่อตรวจสอบว่าค่าที่กำหนดเป็น NULL หรือไม่
หากค่าที่ตรวจสอบเป็น NULL จะคืนค่า 1 (จริง) แต่ถ้าไม่ใช่ NULL จะคืนค่า 0 (เท็จ)
เหมาะสำหรับการใช้ตรวจสอบข้อมูลที่อาจไม่มีการระบุค่า เพื่อใช้ในการจัดการกรณีค่าข้อมูลขาดหาย
ประโยชน์ของฟังก์ชัน ISNULL()
- ตรวจสอบว่าค่าใดเป็น
NULL - ใช้ใน
WHERE,CASE,IF, หรือSELECTเพื่อจัดการค่าที่ขาดหาย - ใช้คู่กับการฟิลเตอร์ข้อมูล เช่น แสดงเฉพาะรายการที่ยังไม่มีข้อมูล
- ใช้สร้างคอลัมน์ช่วยในการวิเคราะห์ข้อมูลที่ว่าง
- ใช้ในการสร้างเงื่อนไขในกระบวนการคำนวณ
รูปแบบการใช้งาน
ISNULL(expression)
expressionคือค่าหรือคอลัมน์ที่ต้องการตรวจสอบว่าเป็นNULLหรือไม่- คืนค่า
1ถ้าexpressionเป็นNULL, คืนค่า0หากไม่เป็น
ตัวอย่างการใช้งาน
SQL
SELECT ISNULL(NULL) AS is_null_result;
-- ผลลัพธ์: 1
SELECT ISNULL('Hello') AS is_null_result;
-- ผลลัพธ์: 0สมมติว่ามีตารางชื่อ products ซึ่งเก็บข้อมูลดังนี้
| product_id | name | price |
|---|---|---|
| 1 | Laptop | 25000 |
| 2 | Smartphone | NULL |
| 3 | Keyboard | 1200 |
| 4 | Mouse | NULL |
ตรวจสอบว่าสินค้าชิ้นไหนยังไม่กำหนดราคา
SQL
SELECT product_id, name, price,
ISNULL(price) AS is_price_missing
FROM products;ผลลัพธ์
| product_id | name | price | is_price_missing |
|---|---|---|---|
| 1 | Laptop | 25000 | 0 |
| 2 | Smartphone | NULL | 1 |
| 3 | Keyboard | 1200 | 0 |
| 4 | Mouse | NULL | 1 |
หมายเหตุ
ISNULL()จะคืนค่า1เฉพาะเมื่อค่าคือNULLเท่านั้น ไม่รวม0,'', หรือFALSE- ไม่ควรใช้สับสนกับ
IFNULL()ซึ่งเอาไว้ใช้แทนค่าที่เป็นNULLด้วยค่าที่กำหนด - ค่าที่เป็น
"ช่องว่าง"หรือ0จะถือว่าไม่ใช่NULL - การใช้ใน
WHERE ISNULL(column)จะกรองเฉพาะ record ที่มีNULLจริง ๆ เท่านั้น