FMDB获取数据库中所有元素个数Count

当APP进入后台或其他情况时,需删除本地数据库中的数据,此时想简单的得到符合查询条件的记录条数,比如数据库中的元素个数大于某个值时,就删除前面的数据(也就是最早的数据),达到数据库中最大缓存元素的个数,使用FMDB,2条sqlite语句搞定

/// 清除本地数据库中的数据
- (void)clearLivesData {
    
    [self.dbQueue inDatabase:^(FMDatabase *db) {
        
        [db open];
        // 先查询表中行数的总个数
        NSUInteger count = [db intForQuery:@"select count(*) from t_lives"];
//        NSLog(@"%ld",count);
        
        // 当缓存的数据大于50条时就删除前面的20数据
        if (count > 50) {
            NSString *delegateSql = @"DELETE FROM t_lives WHERE id < 20 ";
            
            if ([db executeUpdate:delegateSql withArgumentsInArray:nil]) {
                [self xy_showMessage:@"已删除本地缓存中最早的20条数据"];
            } else {
                [self xy_showMessage:@"删除本地数据失败"];
            }
            
            
        }
        
        [db close];
    }];
    
}

你可能感兴趣的:(FMDB获取数据库中所有元素个数Count)