2014-05-16 88 views
-4

我嘗試選擇爲每篇文章「昨天」的文章 - 像昨天我寫了這...MySQL的選擇項爲每篇文章

MySQL表藝術:ID INT,日期日期時間,文本文字...

SELECT 
art.id, art.text, art.date 
FROM art 
WHERE 
date(art.date)=curdate() -interval 1 day 

工作做好,但不是最老的文章(不是每天都增加-interval 1 ... 2..3 ..一天不解決

date(art.date)-interval 1 day 

返回正確的日期文章有一天回到 但

WHERE 
date(art.date)=date(art.date)-interval 1 day 

不返回任何一行 可以使用建築也是這樣嗎?它是我的錯誤?多大 ? :)

我只是做了解決方法,但即時通訊諷刺「只有mysql」的解決方案。

+1

不明白你的意思是你需要從昨天和之前獲取數據? –

+0

'date(art.date)= date(art.date)-interval 1 day'只是意味着'2 = 2 - 1'。如果用戶在給定日期內寫入單個文章,那麼您可以使用LIMIT和OFFSET – Ejaz

回答

0

這是我對這個問題的理解。對於任何給定的日期,您需要上一個有文章的日期的文章。

SELECT art.id, art.text, art.date 
FROM art join 
    (select max(art.date) as yestdate 
     from art 
     where art.date <= curdate() -interval 1 day 
    ) const 
WHERE date(art.date) = yestdate; 
相關問題