2015-10-19 83 views
0

我在這裏有類似的問題,但不是依靠代碼來做到這一點,而是希望SQL能夠處理我正在嘗試查找的內容。 我需要先在「my_table」中選擇最新發布的記錄,是的,我可以使用「MAX」,而不是根據當前日期或「current_date」查看此記錄是否超過24小時。在如何將兩者結合方面存在問題。根據第一條SQL select語句的結果進行選擇

SELECT max(date(date_posted)) FROM my_table 
WHERE ("SELECT count(DISTINCT my_id) AS 'a' 
     FROM my_table 
     WHERE date_posted > date_sub(current_date, INTERVAL 1 DAY) 
) 

感謝您的期待!

+1

你能提供樣本的數據和預期的結果集嗎? – Alex

+0

如果表中的最新記錄比24小時更新,我期望得到「0」,如果表中最新的記錄超過24小時,我期望得到「1」。謝謝! – Andre

回答

0

這將工作正常。

SELECT max(date(date_posted)) FROM my_table WHERE DATEDIFF(current_date,date_posted) > 1 
+0

這一個給我這個錯誤:「'有條款'中的未知列'date_posted'」 – Andre

+0

現在檢查.......... –

+0

現在,如果表中最新的記錄是從「2015-10- 20「你的SQL返回」2015-10-18「。 – Andre

0

您不需要派生表。從您的評論,看起來像你試圖做的:

select 
case when max(date(date_posted)) > date_sub(now(), INTERVAL 1 DAY) then 1 else 0 end 
as somecolumn 
from my_table 
+0

這將返回結果集頂部的「1」,但之後會返回其他幾條記錄。 – Andre

+0

看看修改後的版本是否是你需要的。你的問題不清楚 –

+0

我還有一個問題,如果表格中的最新記錄發佈在「2015-10-19 00:00:06」,它不應該返回一個「0」?因爲「現在()」比24小時更新,對嗎? – Andre

相關問題