Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

เราจะแยกความแตกต่างระหว่างฟังก์ชัน MySQL IFNULL () และ NULLIF () ได้อย่างไร


อันที่จริง ทั้งฟังก์ชัน 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' เนื่องจากเป็นอาร์กิวเมนต์แรกและแตกต่างจากอาร์กิวเมนต์ที่สอง