Cả hai hàm có cú pháp gần giống nhau:
Cú pháp IFNULL()
IFNULL(expression1, expression2)
Cú pháp NULLIF()
NULLIF(expression1, expression2)
Khác biệt ở cách trả về đối số đầu tiên:
IFNULL()trả vềexpression1nếu nó khác NULL.NULLIF()trả vềexpression1nếu hai đối số khác 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)
Cả hai đều trả về 'Ram' nhưng lý do khác: IFNULL vì đối số 1 không NULL; NULLIF vì đối số 1 khác đối số 2.