美文网首页iOS学习笔记
sqlite3逆序分页读取数据

sqlite3逆序分页读取数据

作者: ZYiDa | 来源:发表于2018-06-06 14:45 被阅读19次

项目中有一个需求:

从本地数据库读取数据,读取方式为分页、逆序;

如下:

- (void)searchDataWithPage:(NSInteger)page andLimit:(NSInteger)limit userName:(NSString *)userName complete:(void(^)(NSArray *searchArray))searchArray;
- (void)searchDataWithPage:(NSInteger)page andLimit:(NSInteger)limit userName:(NSString *)userName complete:(void(^)(NSArray *searchArray))searchArray{
    
    NSMutableArray *array = [NSMutableArray array];
    [self openDataBase];
    NSString *sql = [NSString stringWithFormat:@"select * from MESSAGE_LOCAL where user_name = '%@' order by id desc limit %ld,%ld ",userName,page,limit];
    sqlite3_stmt *stmt = nil;
    sqlite3_prepare(dataBase, sql.UTF8String, -1, &stmt, NULL);
    while (sqlite3_step(stmt) == SQLITE_ROW) {
        MessageModel *msgModel = [[MessageModel alloc] init];
        msgModel.msg_id = [[NSString stringWithUTF8String:(const char *)sqlite3_column_text(stmt, 0)] integerValue];
        msgModel.title = [NSString stringWithUTF8String:(const char *)sqlite3_column_text(stmt, 1)];
        msgModel.content = [NSString stringWithUTF8String:(const char *)sqlite3_column_text(stmt, 2)];
        msgModel.webUrl = [NSString stringWithUTF8String:(const char *)sqlite3_column_text(stmt, 3)];
        msgModel.pictureUrl = [NSString stringWithUTF8String:(const char *)sqlite3_column_text(stmt, 4)];
        msgModel.sendTime = [[NSString stringWithUTF8String:(const char *)sqlite3_column_text(stmt, 5)] integerValue];;
        
        [array addObject:msgModel];
    }
    if (array && searchArray) {
        searchArray(array);
    }
    //清空临时缓存
    sqlite3_finalize(stmt);
    [self closeDataBase];
}

核心的语句就是下面的sql 语句

NSString *sql = [NSString stringWithFormat:@"select * from MESSAGE_LOCAL where user_name = '%@' order by id desc limit %ld,%ld ",userName,page,limit];

因为每个账号的数据不一样,所以就在表中加了一个user_name字段来区分,获取数据时也就用它来获取对应账号的数据。order by id desc表示逆序。limit %ld,%ld用于分页获取数据。

相关文章

  • sqlite3逆序分页读取数据

    项目中有一个需求: 从本地数据库读取数据,读取方式为分页、逆序; 如下: 核心的语句就是下面的sql 语句 因为每...

  • sqlite3模块读取数据库然后写入excel表格

    sqlite3模块读取数据库然后写入excel表格 做个笔记:sqlite3模块读取数据库表内容,然后三个表'le...

  • Java操作Solr —— SolrJ

    摘要:Solr,Java,分页,游标 引入依赖 引入依赖 批量查询数据 使用翻页 使用游标分页读取的方式,在大数据...

  • iOS开发 - 加载本地Sqlite数据

    读取自己本地sqlite3数据,比如里面有3个表格装有相同类型的数据,同样的列表

  • iOS野狗云 分页查询数据

    在消息写入部分,我们在路径中写入的数据都是按写入数据的时间戳顺序排布的。那么问题来了,我们读取数据的时候是需要逆序...

  • MongoDB 文档查询 II

    文档查询 II 分页查询 Limit() 含义:读取指定数量的数据记录。语法: 示例: Skip() 含义:跳过指...

  • Python数据分析基础----第二十二天

    数据库 Python内置的sqlite3模块 import sqlite3 创建sqlite3内存数据库 创建带有...

  • 2019-03-02

    完成对于自定义数据的分页,中间过程有点坎坷,最后通过在草稿纸上演算,才得到相应的数学方程式来完成分页功能的数据读取...

  • 学习如何存储你爬取的数据(2)

    之前我写过 学习如何存储你爬取的数据 这一篇文章,学习如何使用sqlite3来读取数据库,用来操作.db文件,这种...

  • 2018-03-15 SQLite 简单使用

    读取SQlite db 文件: zhaofeng $ sqlite3 'xxxxx'.db 进入 SQLite c...

网友评论

    本文标题:sqlite3逆序分页读取数据

    本文链接:https://www.haomeiwen.com/subject/owbpsftx.html