Android数据库SQLite(三)查询问题:取查询结果的第一条数据或者最后一条

更详细问题请查看SQLite官方文档:SQLite文档

  1. 需求

查询返回满足条件的第一条或者最后一条记录

  1. 数据源

在这里插入图片描述
  1. 获取查询结果的第一条记录

获取所有查询结果

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
在这里插入图片描述

  1. 获取查询结果的最后一条记录

max(rowid)

在这里插入图片描述

问题:同样max也有同样的问题,如果要排序的话,倒序然后通过limit获取第一条数据

  1. 代码解决

那就是将查询结果全部返回,获取list的一个或者最后一个(不建议)
能用sql解决的不用代码处理

  1. limit扩展

用法:

select * from tableName limit i,n

参数:
tableName : 为数据表;
i : 为查询结果的索引值(默认从0开始);
n : 为查询结果返回的数量

排序问题

Android数据库SQLite排序问题一:字符串类型的数值排序
Android数据库SQLite排序问题二:含有空值的排序

你可能感兴趣的:(Android数据库SQLite(三)查询问题:取查询结果的第一条数据或者最后一条)