1
我有一個這樣的數據庫:得到更新,舊帖子從MySQL,但至少一定數量
+------------+-------------+
| listed | data |
+------------+-------------+
| 2013-01-01 | random text |
| 2013-01-02 | random text |
| 2013-01-03 | random text |
| 2013-01-05 | random text |
| 2013-01-06 | random text |
| 2013-01-07 | random text |
+------------+-------------+
在這種情況下,「數據」
是一個笑話的標題。我想在當前的笑話旁邊列出較舊的笑話和新的笑話。不是每天都有一個笑話。如果沒有較新的我只想老的和副詩句......
這樣:
for 2013-01-02 I want 2013-01-01 and 2013-01-03
for 2013-01-03 I want 2013-01-02 and 2013-01-05
for 2013-01-07 I want 2013-01-05 and 2013-01-06
for 2013-01-01 I want 2013-01-02 and 2013-01-03
我可以在兩個查詢做到這一點,至少獲得2笑話的情況下,其他查詢不返回任何內容:
SELECT * FROM jokes WHERE listed>'$date' ORDER BY listed ASC limit 2
SELECT * FROM jokes WHERE listed<'$date' ORDER BY listed DESC limit 2
,然後做數學上的數組的長度,但我想知道是否有在單個查詢做到這一點正確的方法是什麼?
您建議的方式(可以用'unioned'子查詢重寫爲一個查詢)很好。 – Strawberry