MySQL การใช้งานฟังก์ชัน IFNULL()

ฟังก์ชัน IFNULL() ใน MySQL ใช้เพื่อตรวจสอบค่าที่อาจเป็น NULL และแทนที่ค่าดังกล่าวด้วยค่าที่กำหนดไว้ หากค่าที่ตรวจสอบไม่ใช่ NULL จะคืนค่าต้นฉบับ

จุดประสงค์หลักคือการหลีกเลี่ยงการแสดงผลหรือประมวลผลค่าที่ว่างเปล่า (NULL) เช่น ใช้แทนค่าแสดงผลเริ่มต้น หรือคำนวณข้อมูลอย่างถูกต้องแม้มีค่าว่าง

ประโยชน์ของฟังก์ชัน IFNULL()

  • แสดงค่าทดแทนเมื่อพบค่า NULL
  • ป้องกันปัญหาการแสดงค่าที่ว่างเปล่าในรายงาน
  • ช่วยให้การคำนวณทางคณิตศาสตร์หรือข้อความไม่เกิดปัญหาเพราะ NULL
  • ใช้ในการจัดการข้อมูลที่มีการเว้นช่องว่างหรือไม่ได้ระบุค่า
  • ใช้ร่วมกับ SELECT, WHERE, ORDER BY, GROUP BY ได้

รูปแบบการใช้งาน

IFNULL(expression, alt_value)
  • expression คือค่าที่จะตรวจสอบว่ามีค่าเป็น NULL หรือไม่
  • alt_value คือค่าที่จะถูกใช้แทนถ้า expression มีค่าเป็น NULL

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

SQL
SELECT IFNULL(NULL, 'ไม่ระบุ') AS result;
-- ผลลัพธ์: 'ไม่ระบุ'

SELECT IFNULL('Hello', 'ไม่ระบุ') AS result;
-- ผลลัพธ์: 'Hello'

สมมติว่ามีตารางชื่อ employees ซึ่งเก็บข้อมูลดังนี้

employee_id name department
1SomchaiHR
2ArisaNULL
3JohnIT
4SaraNULL

แสดงชื่อแผนก หากว่างให้ขึ้นข้อความว่า “ไม่ระบุแผนก”

SQL
SELECT employee_id, name,
       IFNULL(department, 'ไม่ระบุแผนก') AS display_department
FROM employees;

ผลลัพธ์

employee_id name display_department
1SomchaiHR
2Arisaไม่ระบุแผนก
3JohnIT
4Saraไม่ระบุแผนก

หมายเหตุ

  • IFNULL() ตรวจสอบเพียงว่าค่าเป็น NULL หรือไม่เท่านั้น ไม่สามารถใช้กับค่า “ว่างเปล่าแต่ไม่ NULL” เช่น '' หรือ 0
  • alt_value ควรเป็นชนิดข้อมูลเดียวกับ expression เพื่อป้องกันผลลัพธ์ไม่ตรงตามความต้องการ
  • หากต้องตรวจสอบหลายค่าพร้อมกัน ควรใช้ COALESCE() แทน ซึ่งรองรับหลาย argument
  • หากใช้กับ field ที่ไม่สามารถเป็น NULL ได้ (เช่น NOT NULL) ผลลัพธ์ของ IFNULL() จะเหมือนค่าปกติเสมอ
แชร์เรื่องนี้