SQLite 的 ORDER BY 子句是用來基於一個或多個列按升序或降序順序排列數據。
order by 與 limit
num = MAX_LIST - 2;
delete from where alarmTime < (select alarmTime from tableName order by alarmTime desc limit num,1);
#功能說明:根據時間倒敘排列,然後從倒數第二行開始取,取一條數據,之後刪除最後一條數據
#隱患:當倒數兩條數據時間相同時,則沒有刪除最後一條數據。
#下面語句和上面語句實現功能一樣
delete from where alarmTime < (select alarmTime from tableName order by alarmTime desc limit 1 offset num);
語法
ORDER BY 子句的基本語法如下:
SELECT column-list
FROM table_name
[WHERE condition]
[ORDER BY column1, column2, .. columnN] [ASC | DESC];
您可以在 ORDER BY 子句中使用多個列。確保您使用的排序列在列清單中。
注:ASC升序排列、DESC降序排列。
實例
假設 COMPANY 表有以下記錄:
ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 1 Paul 32 California 20000.0 2 Allen 25 Texas 15000.0 3 Teddy 23 Norway 20000.0 4 Mark 25 Rich-Mond 65000.0 5 David 27 Texas 85000.0 6 Kim 22 South-Hall 45000.0 7 James 24 Houston 10000.0
下面是一個實例,它會將結果按 SALARY 升序排序:
sqlite> SELECT * FROM COMPANY ORDER BY SALARY ASC;
這將產生以下結果:
ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 7 James 24 Houston 10000.0 2 Allen 25 Texas 15000.0 1 Paul 32 California 20000.0 3 Teddy 23 Norway 20000.0 6 Kim 22 South-Hall 45000.0 4 Mark 25 Rich-Mond 65000.0 5 David 27 Texas 85000.0
下面是一個實例,它會將結果按 NAME 和 SALARY 升序排序:
sqlite> SELECT * FROM COMPANY ORDER BY NAME, SALARY ASC;
這將產生以下結果:
ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 3 Teddy 23 Norway 20000.0 1 Paul 32 California 20000.0 4 Mark 25 Rich-Mond 65000.0 6 Kim 22 South-Hall 45000.0 7 James 24 Houston 10000.0 5 David 27 Texas 85000.0 2 Allen 25 Texas 15000.0