Trên thực tế, cả hai hàm IFNULL () và NULLIF () của MySQL đều có cú pháp gần như giống nhau như được đưa ra bên dưới -
Cú pháp của IFNULL ()
IFNULL(expression1, expression2)
Cú pháp của NULLIF ()
NULLIF(expression1, expression2)
Chúng có thể được phân biệt theo cách chúng trả về đối số đầu tiên. Hàm IFNULL () sẽ trả về kết quả là đối số đầu tiên nếu nó không phải là NULL và hàm NULLIF () sẽ trả về kết quả là đối số đầu tiên nếu cả hai đối số không giống nhau.
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)
Từ tập kết quả trên của cả hai hàm, có vẻ như chúng tương tự nhau nhưng hàm IFNULL () trả về ‘Ram’ vì nó là đối số đầu tiên của nó và nó không phải là NULL. Mặt khác, hàm NULLIF () trả về ‘Ram’ vì nó là đối số đầu tiên và nó khác với đối số thứ hai.