我有两个查询。这些查询中没有错误只是结果是不同的。为什么不同的结果使用Mysql查询
查询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相同的结果?
从本质上讲,你问为什么是两个不同的查询产生不同的结果:)在第一个查询,你检查是否END_DATE为NULL具体而第二个检查如果END_DATE也等于'0000-00-00'。 –
但是,当我插入我使用'NULL'结束日期然后它保存'0000-00-00'。所以根据这我说,在选择期间,为什么它不与'NULL'工作 –
它现在听起来像end_date列在其定义中包含NOT NULL DEFAULT'0000-00-00'。这意味着,当一行被插入数据库时,如果'end_date'丢失,'0000-00-00'将被用于它的位置。请更新您的问题与您的表架构 –