MySQL的NULLIF()函数用于比较两个表达式,如果这两个表达式的值相等,则返回NULL,否则返回第一个表达式的值。在下面的内容中,我们将为您提供NULLIF()函数的使用方法及其实例。
语法
NULLIF(expr1,expr2)
参数说明
expr1
: 要比较的第一个表达式。expr2
: 要比较的第二个表达式。
返回值
如果expr1
和expr2
的值相等,则返回NULL,否则返回expr1
的值。
使用方法
下面给出NULLIF()
函数的使用方法:
SELECT NULLIF(expr1, expr2);
如果expr1
等于expr2
,则NULLIF()
函数返回NULL
,否则返回expr1
。
示例
我们来看两个使用NULLIF()
函数的实例。
示例1
现在我们有一张用户表,其中包含了每个用户的手机号码和名字。假设我们要查询所有未填写名字的用户的手机号码。那么我们可以使用以下SQL语句:
SELECT phone_num FROM users WHERE NULLIF(name, '') IS NULL;
在上述语句中,我们使用了NULLIF()
函数。如果用户名字为空,则NULLIF()
函数返回NULL
,因此WHERE
子句的结果为TRUE
,即该行数据被选中。最终结果就是所有未填写名字的用户的手机号码。
示例2
假设我们要查询所有没有出过差旅费用的员工姓名及对应部门。现在我们有两张表,一张表是员工信息表employee
,包含员工姓名(name
)和部门编号(dept_id
);另一张是出差费用表travel
,包含员工姓名(name
)和出差费用(cost
)。那么我们可以使用以下SQL语句:
SELECT employee.name, employee.dept_id
FROM employee
LEFT JOIN travel ON employee.name = travel.name
WHERE NULLIF(travel.cost, 0) IS NULL;
在上述语句中,我们使用了NULLIF()
函数。如果某个员工出差费用为0,则NULLIF()
函数返回NULL
,因此WHERE
子句的结果为TRUE
,即该行数据被选中。最终结果就是所有没有出过差旅费用的员工姓名及对应部门。
总结
NULLIF()
函数是MySQL中非常有用的函数,它可以比较两个表达式,并返回相应的值。使用该函数可以大大简化查询操作,提高代码的可读性。