我有两个问题。这些查询中没有错误只是结果不同。
查询1
SELECT * FROM notices
WHERE CURDATE( ) < end_date
OR end_date = NULL
ORDER BY id
查询一的结果:
查询2
select * from notices
where CURDATE() < end_date or end_date='0000-00-00'
order by id
查询二的结果:
表格结构
问题
我的问题是为什么查询1没有显示与查询2显示相同的结果?
答案 0 :(得分:1)
因为NULL与&#34; 0000-00-00&#34;
不同PD:如果你想设置一个where子句并选择where where为null,你应该使用&#34; WHERE end_date IS NULL&#34;,not&#34; WHERE end_date = NULL&#34;
答案 1 :(得分:0)
根据我的理解,NULL与Date类型的EA不同。一些开发人员使用0000-00-00作为默认值。由于NULL和0000-00-00都不同,因此您会看到两种不同的结果集。