如果col可以为空,则mysql col!= 1返回0结果集

时间:2015-06-10 06:37:44

标签: mysql

`type` tinyint(1) DEFAULT NULL

数据集

id名称类型
1 abc 1
2 bcd NULL
3 efg NULL

QUERY:

SELECT * FROM table WHERE type!=1;

查询返回0结果集

要求提出问题解释或解决方案 请不要替换。

3 个答案:

答案 0 :(得分:4)

您需要为NULL添加特殊情况:

SELECT * FROM table WHERE type IS NULL OR type !=1;

答案 1 :(得分:1)

您的查询应该是

SELECT * FROM table WHERE type IS NULL;

如果您要查找类型具有值" NULL"

的行

阅读this,它说:

  

NULL值与其他值的处理方式不同   无法比较NULL和0;它们并不等同。

基本上,您应该使用 xxx IS NULL xxx IS NOT NULL

答案 2 :(得分:1)

NULL!= 1返回null,不等于true。

尝试运行SELECT type , type != 1 as flag FROM table

你会得到0作为type = 1的标志。而NULL为TYPE = NULL的标志

您可以将查询更改为

select * from table where coalesce(type, 0) != 1

Similar Question