如何在mysql中使用NULL判断条件

来源:这里教程网 时间:2026-02-28 20:17:33 作者:

在MySQL中处理NULL值时,不能使用普通的等于(=)或不等于()操作符来判断,因为NULL代表“未知值”,它不等于任何值,包括它自己。正确使用NULL判断需要依赖特定的语法。

使用IS NULL判断空值

要判断某个字段是否为NULL,应使用IS NULL操作符。

例如,查询users表中email字段为空的记录:

SELECT * FROM users WHERE email IS NULL;

这条语句会返回所有email为NULL的行。

使用IS NOT NULL判断非空值

如果想筛选出字段有实际值的记录,使用IS NOT NULL

例如,获取有邮箱地址的用户:

SELECT * FROM users WHERE email IS NOT NULL;

注意不要用=或!=判断NULL

以下写法是错误的,不会返回预期结果:

SELECT * FROM users WHERE email = NULL; -- 错误
SELECT * FROM users WHERE email != NULL; -- 错误

这些条件始终返回“未知”(相当于false),无法正确过滤数据。

使用IFNULL、COALESCE处理NULL显示

在查询结果中,可以用函数将NULL转换为默认值。

IFNULL(expr, default):如果expr为NULL,返回default。 COALESCE(value1, value2, ...):返回第一个非NULL的值。

示例:

SELECT name, IFNULL(email, '无邮箱') AS email FROM users;

SELECT COALESCE(phone, mobile, '未提供联系方式') FROM contacts;

基本上就这些。只要记住:判断NULL用IS NULL或IS NOT NULL,别用等号,再配合IFNULL或COALESCE做展示处理,就能正确应对大多数场景。

相关推荐