2013-04-10 42 views
2

在我的MySQL數據庫中,我有插入日期(作爲datetime類型的列之一)的記錄。
除了一些where子句約束之外,我想選擇給定日期(從給定日期到現在)上方的所有記錄,以及恰好在給定日期之下最接近的一條記錄。
任何想法如何實現這種使用MySQL的有效方式?
我想過使用數量和排名,但我認爲它可能非常低效。MySQL - 查詢記錄以上日期和下面的一個

+0

這將有助於看到您需要 – 2013-04-10 09:47:39

+1

(pseudosql)之間的聯盟結構和結果的例子'頂部1 *,其中日期<@MinDate按日期desc'和正常的查詢可能? – 2013-04-10 09:50:02

回答

2

也許有點像這樣?

(SELECT * FROM mytable WHERE mydate >= xxx) 
UNION 
(SELECT * FROM mytable WHERE mydate < xxx ORDER BY mydate DESC LIMIT 1) 
+1

您需要圍繞第二個查詢的括號,否則限制和順序將應用於整個聯合查詢 – fthiella 2013-04-10 10:52:55

+0

@fthiella:謝謝,完成 – 2013-04-10 11:10:59

相關問題