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多值存入、删除、修改也是一样的


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值