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

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