FMDB多值查询

FMDB是iOS开发中最常用的轻量级数据库,可以从https://github.com/ccgus/fmdb上下载。在使用的时候,不熟悉数据库的童鞋在遇到多值查询的时候,就有点纳闷了,不可能去一个个的遍历数组吧!

其实还真不用,这样:SELECT * FROM "t_table" WHERE field IN (?,?);就可以了,这里的t_table是需要查询的表,field是表中的字段名。知道这句SQL语句的作用,那么就简单了,不是吗?

1、在一个field数组(fields)中,假设field是varchar类型,那么只需要NSString *fieldstring = [fields componentsJoinedByString:@","];把所有字段名用逗号隔开来拼接起来。

2、执行SQL语句:SELECT * FROM "t_table" WHERE field IN (fieldstring);这样就完成了。

那么问题来了,如果不是字符串类型呢?

这样也很简单,只需要使用这个:[db executeQuery:(这里是SQL语句) withArgumentsInArray:(数组值)];

不过这里的SQL语句需要使用占位符,那么久这样来做

NSString *placeholder = @"";

for(int num = 0; num < [fields count]; num ++){

  placeholder = [placeholder stringByAppendingString:@"?,"];

}

// 最后删除第一个字符(",")

placeholder = [placeholder substringFromIndex:1];


执行SQL

NSString *sql = [NSString stringWithFormat:@"SELECT * FROM "t_table" WHERE field IN (%@);"placeholder];

[db executeQuery:sql withArgumentsInArray:fields];
到这里,怎么去获取结果就不用再说了吧!我想会用FMDB的童鞋都会的。对于FMDB多值存入、删除、修改也是一样的


你可能感兴趣的:(FMDB)