1

null 許容の 2 つの DATE フィールド (PublishFrom、PublishTo) があります。このクエリでレコードを取得しようとしています:

SELECT * FROM tblNews 
    WHERE Publish = 1 
    AND IFNULL(PublishFrom, CURDATE() - INTERVAL 1 DAY) <= "2015-03-13" 
    AND IFNULL(PublishTo, CURDATE() + INTERVAL 1 DAY) >= "2015-03-13" 
    ORDER BY DateCreated DESC'

意味は、これらのフィールド (の 1 つ) の値が null の場合、エントリが常に表示されるように、昨日の値と明日の値に置き換えられるということです。

現在、PublishFrom および/または PublishTo が null でない投稿のみが表示されます。どうして?

4

2 に答える 2

2

CURDATE() + 1orを使用すると、比較 - 1が変換されて台無しになります。代わりに(または)を使用します。CURDATE+ INTERVAL 1 DAY- INTERVAL 1 DAY

于 2015-03-13T20:34:55.077 に答える