|
1
2
3
4
5
6
|
#查询第一行起的5行数据,可以有两种语句:#第一种语句:select
* from
T_user limit 5 offset 0; #第二种语句:select
* from
T_user limit 0,5; |
然后,回来过头看分页查询方法:
|
1
2
|
String
sql= "select
* from table Limit 100 Offset 2";
Cursor
rec = db.rawQuery(sql, null);
|
方法二:使用SQLiteDatabase.query(table, columns, selection, selectionArgs, groupBy, having, orderBy, limit) ,它是基于第二种SQL语句的。这个google出来,好像比较少介绍,不知道为什么。我更倾向于这种方法,能够使用Android API提供的简便方法,就使用简便方法,除非它不能满足功能需求,这也是我写代码的原则。
|
1
2
3
4
5
6
7
8
9
10
11
12
|
/***
table="表命", *
columns="要查询的列名", *
selection="查询 条件", *
selectionArgs="条件中用了占位符的参数", *
groupBy="数据分组", *
having="分组后的条件", *
orderBy="排序方式", *
limit="分页查询"; **/cursor=
db.query(TableName, null,
null, null,null,
null,
null,
"5,9");//"5,9",第6行开始,返回9行数据 |
方法三:使用SQLiteDatabase.query(table, columns, selection, selectionArgs, groupBy, having, orderBy),看到这方法是不是觉得就比方法二少了limit参数,少了limit参数还怎么分页啊。少了limit参数,把分页语句写orderBy里面照样能分页。这是个歪招,利用了SQLiteDatabase最后要把所有的查询转换SQL语句来执行的机制,也算一种SQL注入吧,所以它两种SQL语句都支持。这个方法写在这里是为了加深对SQLiteDatabase SQL操作的理解,非特别需求不建议使用,代码示例如下:
|
1
2
3
|
//根据clumn1列降序排序,同时带了分页查询:第6行起查询9行数据cursor
= db.query(tableName, columns, null, null, null, null, "clumn1
desc limit 9 offset 5"); |
本文介绍了SQLite数据库中实现分页查询的三种方法,包括使用rawQuery()方法、query()方法及一种特殊的SQL注入技巧。每种方法都有详细的SQL语句示例。
4897

被折叠的 条评论
为什么被折叠?



