2016-05-31 12 views
-4

Ich konnte das Problem in meinem eigenen Publishing-System nicht lösen.MYSQL WENN NOT NULL in der Abfrage enthalten

Es gibt Spalten "publishing_date" und "expiration_date" in der Tabelle mysql. Diese Spalten müssen nicht ausgefüllt werden (Standardwert) und sie sind vom Integer-Typ. In der MySQL-Abfrage werden die Anzeigen normalerweise aufgelistet, und wenn diese beiden Spalten nicht null sind, werden sie in die Abfrage einbezogen.

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 

Es zeigen sollte 2, 3, 4 ids

+2

Probentabellendaten hinzufügen und das Ergebnis – jarlh

+0

welche Datentyp erwartet, sind die publishing_date adn expiration_date Spalten? – scaisEdge

+0

Datentypen sind Integer – Yavuz

Antwort

0

Wenn ich deine Frage richtig verstanden, dann sollten diese Abfrage arbeiten.

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

Überprüfen Sie den Tabellennamen. – Gadget

+0

Danke für Ihre Hilfe. Ich löste mein Problem SELECT DISTINCT ID FROM Anzeigen WHERE (Veröffentlichungsdatum ist NULL UND Ablaufdatum ist NULL) ODER (Veröffentlichungsdatum UNIX_TIMESTAMP() UND (Veröffentlichungsdatum ist nicht NULL und Ablaufdatum ist nicht NULL)) – Yavuz

+0

Konnte ' t Sie vereinfachen es daher zu: 'SELECT DISTINCT ID VON Anzeigen WHERE (Veröffentlichungsdatum ist NULL und Ablaufdatum ist NULL) ODER (Veröffentlichungsdatum UNIX_TIMESTAMP())' – Gadget