第一:注意null值是不参与运算的,这也是很多书里讲MySQL优化时经常说尽量避免null值的一个原因;第二:你检查一下state字段的类型是否是数值类型;
null
state
这是sql标准语义,null不能和数字做比较,想比较null需用xxx is null或 xxx is not null
xxx is null
xxx is not null
null就是null不是任何基本类型所以你怎么拿他与-1作比较?MySQL为了优化所以null值不参与运算,基础知识不扎实啊大兄弟。
select id from tenantry where state is null,你尝试这个语句
state is null or state != -1MySql的null默认不参与运算
4 回答1.4k 阅读✓ 已解决
4 回答1.3k 阅读✓ 已解决
8 回答1.3k 阅读
1 回答2.6k 阅读✓ 已解决
3 回答1.1k 阅读✓ 已解决
2 回答740 阅读✓ 已解决
2 回答1.7k 阅读
3 回答8.3k 阅读✓ 已解决
4 回答6.5k 阅读✓ 已解决
1 回答3.4k 阅读
2 回答2.9k 阅读✓ 已解决
1 回答2k 阅读✓ 已解决
第一:注意
null
值是不参与运算的,这也是很多书里讲MySQL优化时经常说尽量避免null
值的一个原因;第二:你检查一下
state
字段的类型是否是数值类型;