2016-05-31 51 views
-4

我無法解決我自己的廣告發布系統中的問題。MYSQL IF NOT NULL包含在查詢中

mysql表中有「publishing_date」和「expiration_date」列。這些列不需要填充(默認值),它們是整數類型。 在mysql查詢中,廣告將正常列出,如果這兩列不爲空,那麼它們將包含在查詢中。

Example: 

publishing_date < current_date < expiration_date 

Table: 

id|publishing_date|expiration_date 
1|1450821600|1451512800 ---> 2015/12/23 - 2015/12/31 
2|1464555600|1465506000 ---> 2016/05/30 - 2016/06/10 
3|NULL|NULL 
4|NULL|NULL 

它應該顯示2,3,4 IDS

+2

添加樣本表數據和預期結果 – jarlh

+0

哪些數據類型是publishing_date和expiration_date列? – scaisEdge

+0

數據類型是整數 – Yavuz

回答

0

如果我理解正確你的問題,然後此查詢應該工作。

SELECT id FROM ads WHERE FROM_UNIXTIME(publishing_date, '%Y-%m-%d') < DATE(NOW()) AND FROM_UNIXTIME(expiration_date, '%Y-%m-%d') < DATE(NOW()) OR (publishing_date IS NULL AND expiration_date IS NULL) 
+0

檢查表名。 – Gadget

+0

感謝您的幫助。我解決了我的問題 SELECT DISTINCT ID FROM廣告WHERE(發佈日期IS NULL和expiration_date IS NULL)OR(發佈日期 UNIX_TIMESTAMP()AND(發佈日期非空且expiration_date不爲空)) – Yavuz

+0

Couldn'因此,您將其簡化爲:'SELECT DISTINCT id FROM ads WHERE(publisher_date IS NULL AND expiration_date is NULL)OR(publishing_date UNIX_TIMESTAMP())' – Gadget