为什么使用Mysql查询的不同结果

时间:2016-05-13 14:27:01

标签: mysql

我有两个问题。这些查询中没有错误只是结果不同。

查询1

SELECT * FROM notices
WHERE CURDATE( ) < end_date
OR end_date = NULL
ORDER BY id

查询一的结果:

enter image description here

查询2

select * from notices
where CURDATE() < end_date or end_date='0000-00-00' 
order by id

查询二的结果:

enter image description here

表格结构

enter image description here

问题

我的问题是为什么查询1没有显示与查询2显示相同的结果?

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都不同,因此您会看到两种不同的结果集。

选中此default date '0000-00-00 00:00:00' or null