อันที่จริง ทั้งฟังก์ชัน MySQL IFNULL() และ NULLIF() มีรูปแบบที่เกือบจะเหมือนกันดังที่ระบุด้านล่าง -
รูปแบบของ IFNULL()
IFNULL(expression1, expression2)
รูปแบบของ NULLIF()
NULLIF(expression1, expression2)
พวกเขาสามารถแยกแยะได้ในวิธีที่ส่งกลับอาร์กิวเมนต์แรกเป็นผล ฟังก์ชัน IFNULL() จะคืนค่าอาร์กิวเมนต์แรกเป็นผลหากไม่ใช่ NULL และฟังก์ชัน NULLIF() จะคืนค่าอาร์กิวเมนต์แรกเป็นผลหากอาร์กิวเมนต์ทั้งสองไม่เหมือนกัน
mysql> Select IFNULL('Ram','Shyam'); +-----------------------+ | IFNULL('Ram','Shyam') | +-----------------------+ | Ram | +-----------------------+ 1 row in set (0.00 sec) mysql> Select NULLIF('Ram','Shyam'); +-----------------------+ | NULLIF('Ram','Shyam') | +-----------------------+ | Ram | +-----------------------+ 1 row in set (0.00 sec)
จากชุดผลลัพธ์ข้างต้นของทั้งสองฟังก์ชัน ดูเหมือนว่าจะคล้ายกัน แต่ฟังก์ชัน IFNULL() ส่งคืน 'Ram' เนื่องจากเป็นอาร์กิวเมนต์แรกของฟังก์ชัน และไม่ใช่ NULL ในทางกลับกัน ฟังก์ชัน NULLIF() จะคืนค่า 'Ram' เนื่องจากเป็นอาร์กิวเมนต์แรกและแตกต่างจากอาร์กิวเมนต์ที่สอง