MySQL查询字段为NULL、不为NULL的数据问题
作者:RQ-ghylls
介绍了MySQL查询字段为NULL和不为NULL的数据时需要注意的几点,包括查询语句的编写和NULL与其他字符的操作,通过实际操作对比,指出使用IS NOT NULL可以正确查询到非NULL字段的数据
MySQL查询字段为NULL、不为NULL的数据
对于NULL字段的操作,有几点注意的地方,统一收集记录在此文章,以便后面的查找使用。
1.查询表中某一字段为NULL的结果
select * FROM table1 WHERE column1=null; #错误使用方法:查询结果为空 select * FROM table1 WHERE isNull(column1); #正确使用方法,注意isNull的大小写。isNULL就会报语法错误。
2.查询表中某一字段不为null的结果
select * FROM table1 WHERE column1 IS NOT NULL;
3.NULL与其他字符的拼接、运算、比较操作
select null+"aa"; #结果为NULL select concat(null,"a"); #NULL与其他字符做拼接,结果为NULL select null+1; #NULL与其他字符做运算,结果为NULL select null<>0; #NULL与其他字符做比较,结果为NULL
在查询数据时,条件是某个字段不为空。
在这里用密码不为空来举例:
SELECT * FROM user WHERE password != NULL
可以看到在我的数据库里面,user表是有数据的
但是点击运行后,却没有任何结果。
接下来把查询语句里面的 != 换成 IS NOT
SELECT * FROM user WHERE password IS NOT NULL
会发现查询到了数据,用 != 查不到数据,用 IS NOT NULL 才可以
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。