第一:注意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默认不参与运算
15 回答8.2k 阅读
8 回答6k 阅读
5 回答3.3k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
1 回答4.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答8.2k 阅读✓ 已解决
4 回答6.4k 阅读✓ 已解决
1 回答3.3k 阅读
1 回答1.9k 阅读✓ 已解决
第一:注意
null
值是不参与运算的,这也是很多书里讲MySQL优化时经常说尽量避免null
值的一个原因;第二:你检查一下
state
字段的类型是否是数值类型;