2013-05-31 41 views
0


我有一個表events其中包含timestamp。 我想SELECT兩件事發生的下一個事件和過去的最後8件事件。
有兩個不同的查詢將是:
1)ORDER BY和LIMIT 2個不同的參數

SELECT * FROM events WHERE timestamp > timeNow ORDER BY timestamp LIMIT 0,2 

2)

SELECT * FROM events WHERE timestamp < timeNow ORDER BY timestamp DESC LIMIT 0,8 

是否有可能做的只有一個查詢?

感謝

+2

您是否在這兩者之間嘗試過聯盟? – dKen

回答

1

嘗試UNION or UNION ALL

SELECT * FROM events WHERE timestamp > timeNow ORDER BY timestamp LIMIT 2 
UNION ALL 
SELECT * FROM events WHERE timestamp < timeNow ORDER BY timestamp DESC LIMIT 8; 

此外,請記住LIMIT 8相當於LIMIT 0, 8。原因是LIMIT 0, 8的意思是「從第0行開始,並將行數限制爲8」

+0

LIMIT 0,2是什麼意思?我們不能簡單地寫LIMIT 2; ? –

+0

是的,你可以寫LIMIT 2而不是LIMIT 0,2。它們在功能上是相同的!爲了描述這一點,我已經修改了我的答案。 –

+0

+1感謝您的澄清:) –