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。对比下面两组查询结果在这里插入图片描述

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

max(rowid)

在这里插入图片描述

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

  1. 代码解决

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

  1. limit扩展

用法:

select * from tableName limit i,n

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

排序问题

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值