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

ฟังก์ชัน IF() ใน MySQL ใช้สำหรับประเมินเงื่อนไข (condition) และคืนค่าตามผลของเงื่อนไขนั้น ทำหน้าที่เหมือน IF-THEN-ELSE ในภาษาโปรแกรมทั่วไป โดยจะคืนค่าแรกถ้าเงื่อนไขเป็นจริง (TRUE) และคืนค่าอื่นหากเงื่อนไขเป็นเท็จ (FALSE) เหมาะสำหรับกรณีที่ต้องการแสดงผลต่างกันตามเงื่อนไข ภายในคำสั่ง SQL เช่น ใน SELECT, WHERE, ORDER BY หรือ UPDATE

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

  • ใช้ประเมินเงื่อนไขง่าย ๆ แบบ 2 ทาง (TRUE/FALSE)
  • ใช้สร้างคอลัมน์แสดงผลลัพธ์ที่ต่างกันตามเงื่อนไข
  • ใช้ในการจัดรูปแบบข้อมูล, แปลงค่าตัวเลขเป็นข้อความ เช่น แสดงเกรด, สถานะ
  • ใช้ใน UPDATE, INSERT, SELECT, หรือแม้แต่ ORDER BY
  • ช่วยลดการใช้ CASE สำหรับเงื่อนไขที่ไม่ซับซ้อน

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

IF(condition, true_value, false_value)
  • condition คือเงื่อนไขที่ต้องการตรวจสอบ (เช่น score >= 50)
  • true_value คือค่าที่ส่งคืนถ้าเงื่อนไขเป็นจริง
  • false_value คือค่าที่ส่งคืนถ้าเงื่อนไขเป็นเท็จ

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

SQL
SELECT IF(10 > 5, 'ถูกต้อง', 'ไม่ถูกต้อง') AS result;
-- ผลลัพธ์: 'ถูกต้อง'
SQL
SELECT IF(score >= 50, 'ผ่าน', 'ไม่ผ่าน') AS status
FROM students;

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

student_id name score
1Somchai82
2Arisa47
3John75
4Sara33

แสดงสถานะผ่าน/ไม่ผ่านจากคะแนน

SQL
SELECT student_id, name, score,
       IF(score >= 50, 'ผ่าน', 'ไม่ผ่าน') AS result
FROM students;

ผลลัพธ์

student_id name score result
1Somchai82ผ่าน
2Arisa47ไม่ผ่าน
3John75ผ่าน
4Sara33ไม่ผ่าน

หมายเหตุ

  • ฟังก์ชัน IF() รองรับเพียง 2 เงื่อนไขเท่านั้น ถ้าต้องการเงื่อนไขหลายทาง ให้ใช้ CASE แทน
  • ค่าที่คืนควรเป็นชนิดข้อมูลเดียวกัน (text กับ text, int กับ int) เพื่อป้องกัน error หรือการแปลงค่าที่ไม่พึงประสงค์
  • condition ที่ระบุควรให้ผลลัพธ์เป็น TRUE/FALSE เท่านั้น
  • หากเงื่อนไขประเมินไม่ได้หรือค่าที่เปรียบเทียบเป็น NULL โดยไม่มีการจัดการก่อน อาจได้ผลลัพธ์เป็น NULL
แชร์เรื่องนี้