語句 Limit m,n
limit m,n表示從第m條記錄開始,往後取n條記錄(第一條記錄是從0開始的,第2條記錄是從1開始的,一次類推)。所以從第三條記錄開始取,那麼m=2;如從第6條記錄開始取數據,取10條,SQL語句如下:select * from mytable limit 5,10;
示例:
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);
功能
SQLite 的 LIMIT 子句用於限制由 SELECT 語句返回的數據數量。
語法
帶有 LIMIT 子句的 SELECT 語句的基本語法如下:
SELECT column1, column2, columnN
FROM table_name
LIMIT [no of rows]
下面是 LIMIT 子句與 OFFSET 子句一起使用時的語法:
SELECT column1, column2, columnN
FROM table_name
LIMIT [no of rows] OFFSET [row num]
SQLite 引擎將返回從下一行開始直到給定的 OFFSET 爲止的所有行,如下面的最後一個實例所示。
實例
假設 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
下面是一個實例,它限制了您想要從表中提取的行數:
sqlite> SELECT * FROM COMPANY LIMIT 6;
這將產生以下結果:
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
但是,在某些情況下,可能需要從一個特定的偏移開始提取記錄。下面是一個實例,從第三位開始提取 3 個記錄:
sqlite> SELECT * FROM COMPANY LIMIT 3 OFFSET 2;
這將產生以下結果:
ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 3 Teddy 23 Norway 20000.0 4 Mark 25 Rich-Mond 65000.0 5 David 27 Texas 85000.0
參考資料
https://www.cnblogs.com/SZ2015/p/4617467.html
https://blog.csdn.net/weixin_34122548/article/details/92455872