更详细问题请查看SQLite官方文档:SQLite文档
-
需求
查询返回满足条件的第一条或者最后一条记录
-
数据源
-
获取查询结果的第一条记录
获取所有查询结果
SELECT * FROM student where age>9
在这里插入图片描述
(1)limit
SELECT * FROM student where age>9 limit 1
在这里插入图片描述
注意:不能是limit 1,1(返回第二条),也不能是limit 0,0 (没有数据返回)
(2)min(rowid)
SELECT min(rowid),* FROM student where age>9
在这里插入图片描述
问题:当使用order by 排序后,min(rowid)获取的数据不是符合条件的第一条,rowid是插入数据时,系统自动记录的id。对比下面两组查询结果 image 在这里插入图片描述
-
获取查询结果的最后一条记录
max(rowid)
在这里插入图片描述问题:同样max也有同样的问题,如果要排序的话,倒序然后通过limit获取第一条数据
-
代码解决
那就是将查询结果全部返回,获取list的一个或者最后一个(不建议)
能用sql解决的不用代码处理
-
limit扩展
用法:
select * from tableName limit i,n
参数:
tableName : 为数据表;
i : 为查询结果的索引值(默认从0开始);
n : 为查询结果返回的数量
排序问题
Android数据库SQLite排序问题一:字符串类型的数值排序
Android数据库SQLite排序问题二:含有空值的排序
网友评论