我有一個選擇的結果是這樣的:如何在MySQL上的特定行之前選擇一行,如果該表是按日期排序?
ID | DATE
----------------
10 | 2014-07-23
7 | 2014-07-24
8 | 2014-07-24
9 | 2014-07-24
1 | 2014-07-25
2 | 2014-07-25
6 | 2014-07-25
3 | 2014-07-26
4 | 2014-07-27
5 | 2014-07-28
結果上面按日期順序。現在,我要選擇一個以前的行之前:
2 | 2014-07-25
那就是:
1 | 2014-07-25
在情況下,我不知道確切的ID和條件碼必須是一個,如果我想兼容選擇的上一行:
3 | 2014-07-26
那就是:
6 | 2014-07-25
我應該使用什麼條件?
UPDATE
嘗試這樣:
SET @rank=0;
SELECT @rank:[email protected]+1 AS rank, t1.*
FROM table t1
然後我得到這個:
RANK | ID | DATE
----------------
1 | 10 | 2014-07-23
2 | 7 | 2014-07-24
3 | 8 | 2014-07-24
4 | 9 | 2014-07-24
5 | 1 | 2014-07-25
6 | 2 | 2014-07-25
7 | 6 | 2014-07-25
8 | 3 | 2014-07-26
9 | 4 | 2014-07-27
10 | 5 | 2014-07-28
然後我嘗試這樣的:
SET @rank=0;
SELECT @rank:[email protected]+1 AS rank, t1.*
FROM table t1
WHERE rank < 3;
我得到了這個錯誤:'where子句'中的未知列'等級'。
什麼輸入?該行的「ID」(即第一種情況下爲2)? –
在其他數據庫中,這是一個LAG窗口功能。 – Randy
「*以上表格按日期排序*」 - 不,不是。關係數據庫中的行未排序。您的_result_按日期排序,而不是「表格」 –