iOS 使用FMDB对本地的.db数据进行查询

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS 使用FMDB对本地的.db数据进行查询相关的知识,希望对你有一定的参考价值。

参考技术A /**

*  @author fangbmian, 16-03-18 10:03:50

*

*  获取本地品牌数据

*/

NSString *dbFilePath = [[NSBundle mainBundle] pathForResource:@"name" ofType:@"db"];

if (!dbFilePath) return;

carBrandList = [NSMutableArray new];

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^

queue = [FMDatabaseQueue databaseQueueWithPath:dbFilePath];

[queue inDatabase:^(FMDatabase *db)



FMResultSet *rs = [db executeQuery:@"select distinct CAR_BRAND,CAR_BRAND_LOGO from CAR_VEHICLE"];

while([rs next])



CarBrandInfoBean * info = [CarBrandInfoBean new];

info.carBrand = [rs stringForColumn:@"CAR_BRAND"];

info.carBrandLogo = [rs stringForColumn:@"CAR_BRAND_LOGO"];

[carBrandList addObject:info];



];

);

/**

*  @author fangbmian, 16-03-17 13:03:01

*

*  item被点击

*

*  @param brandName 品牌名称

*/

-(void)didClickItem:(NSString*)brandName



if (!queue) return;

NSMutableArray *carList = [NSMutableArray new];

[queue inDatabase:^(FMDatabase *db)



NSString *sql = [NSString stringWithFormat:@"select CAR_BRAND,CAR_SERIES,CAR_YEAR,CAR_TYPE,CAR_GAS,CAR_ID from CAR_VEHICLE where CAR_BRAND = \'%@\'", brandName];

FMResultSet *rs = [db executeQuery:sql];

while([rs next])



CarInfoBean *info = [CarInfoBean new];

info.carBrand = [rs stringForColumn:@"CAR_BRAND"];

info.carSeries = [rs stringForColumn:@"CAR_SERIES"];

info.carYear = [rs stringForColumn:@"CAR_YEAR"];

info.carType = [rs stringForColumn:@"CAR_TYPE"];

info.carGas = [rs stringForColumn:@"CAR_GAS"];

info.carTypeId = [rs stringForColumn:@"CAR_ID"];

[carList addObject:info];



];

FMDB 数据库查询 IOS FIND_IN_SET()

【中文标题】FMDB 数据库查询 IOS FIND_IN_SET()【英文标题】:FMDB Database Query IOS FIND_IN_SET() 【发布时间】:2016-02-09 09:33:56 【问题描述】:

我在 IOS 中使用 FMDB 数据库。在我的数据库中,我有一列称为标签。 标签列有一个逗号分隔的值,如apple,banana,。我想要我的关键字匹配的Title 列。我想知道如何在表格列中搜索逗号分隔值请帮助。

【问题讨论】:

【参考方案1】:

您需要使用LIKE 运算符,当您有一个像apple,banana,... 这样的字段数据时,您可以在它的开头和结尾添加一个,,例如,apple,banana,...,,这使得所有标签都在两个逗号之间。现在你可以检查它是否包含,yourTag,

我对 FMDB 不太熟悉,但我认为下面的代码可以帮助你:

FMResultSet *rs = [db executeQuery:@"SELECT Title FROM yourTable WHERE ','+tags+',' LIKE ?",
                  [NSString stringWithFormat:@"%%%@%%", @"," + search_text + @","]];

【讨论】:

@viratpuar 您可以查看Like 的链接并按照我的描述对其进行编辑以实现您想要的;)。 谢谢我得到了我想要的;)

以上是关于iOS 使用FMDB对本地的.db数据进行查询的主要内容,如果未能解决你的问题,请参考以下文章

iOS - FMDB数据库的使用

iOS中FMDB按条件查询数据

使用 NSDate 的 FMDB 查询执行但不生效

在 Dynamo DB 中对本地二级索引进行索引

如何在 FMDB 查询 iOS Swift 4 中使用 Like with Text?

iOS FMDB 多线程操作失败