正确答案是使用IS NOT NULL判断字段非空,因为NULL表示未知值,不能用!=或比较,例如SELECT * FROM users WHERE email IS NOT NULL;可查出email有值的记录,而column != NULL会返回假,无法得到预期结果,同理判断等于NULL也需用IS NULL而非=。

在 MySQL 中,不能用普通的不等于操作符(!= 或 )来判断某个字段是否不等于 NULL。因为 NULL 表示“未知值”,它不等于任何值,包括它自己。所以即使你写 column != NULL,结果也会是 NULL(即假),无法返回你想要的数据。
正确查询“不等于 NULL”的方法
要判断某个字段不是 NULL,应该使用 IS NOT NULL 操作符。
-
语法:
WHERE column_name IS NOT NULL - 这会筛选出该字段有实际值(非空)的记录
常见错误写法(不要这样写)
-
WHERE column_name != NULL—— 永远不会匹配任何行 -
WHERE column_name NULL—— 同样无效
正确示例
假设有一个用户表 users,你想查出所有邮箱不为空的用户:
SELECT * FROM users WHERE email IS NOT NULL;
这条语句会返回 email 字段有值的所有记录,排除了 email 为 NULL 的行。
基于PHP+MYSQL开发,除了网上书店必备的商品管理、配送支付管理、订单管理、会员分组、会员管理、查询统计和多项商品促销功能,还具有完整的文章、图文、下载、单页、广告发布等网站内容管理功能。系统具有静态HTML生成、UTF-8多语言支持、可视化模版引擎等技术特点,支持多频道调用不同模版和任意设置频道首页,适合建立各种规模的网上书店。系统具有以下主要功能模块: 网站参数设置 - 对网站的一些参数进
补充:判断等于 NULL 的方式
同理,也不能用 = NULL 来判断是否为 NULL,必须使用:
WHERE column_name IS NULL
基本上就这些。记住:处理 NULL 值时,永远使用 IS NULL 或 IS NOT NULL,而不是 = 或 !=。这是 SQL 标准定义的行为,不只是 MySQL 如此。









