SQLite Limit 子句

語句 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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章