我有兩個查詢。這些查詢中沒有錯誤只是結果是不同的。爲什麼不同的結果使用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'將被用於它的位置。請更新您的問題與您的表架構 –