@"select * from SqlPictureTable where id in (13,16,14)" 返回了id=13 16 14三条数据
//offset代表从第几条记录“之后“开始查询,limit表明查询多少条结果
@"select * from SqlPictureTable limit 10 offset 8" 返回了从第8条开始后的10条数据
SQL查询语句中的 limit 与 offset 的用法:
limit y 分句表示: 读取 y 条数据
limit x, y 分句表示: 跳过 x 条数据,读取 y 条数据
limit y offset x 分句表示: 跳过 x 条数据,读取 y 条数据
//第1页: 从第0个开始,获取20条数据
selete * from testtable limit 0, 20;?
selete * from testtable limit 20 offset 0;
如果从需求是从第offset5 开始, 查询count10条数据, 再取id = "7,8,9"的数据。
select * from (select * from SqlPictureTable limit 5,10 ) as pictureTable where pictureTable.id in (7,8,9)
我用了DGFMDB的框架,
NSArray* arr= bg_executeSql(@"select * from (select * from SqlPictureTable limit 5,10 ) as pictureTable where pictureTable.bg_bg_id in (7,8,9)", kPictureTable, [Picture class]);
//如果offset 和limit 和ids是可变参数,可以这样转换
NSString*sqlStr = [NSString stringWithFormat:@"select * from (select * from SqlPictureTable limit %@,%@ ) as pictureTable where pictureTable.bg_bg_id in (%@)",offset,count,ids];
NSArray* arr2 = bg_executeSql(sqlStr, kPictureTable, [Picture class]);
|