我在让适用于 iOS 的 FMDB 包装器使用参数和 LIKE 子句时遇到问题。事实上,我在使用 FMDB 的 SQLite 上使用 LIKE 子句时遇到了麻烦。
我尝试过使用“Name LIKE '%dam%'”来匹配“Adam”,并且尝试将其指定为参数,如下所示,但没有任何效果。
[buffer appendString:@" Name LIKE '%dam%' "]; // no results
[buffer appendString:@" Name LIKE ? "];
[params addObject:[NSString stringWithFormat:@"%%%@%%", args.name]]; // no results
[buffer appendString:@" Name LIKE '%' ? '%' "];
[params addObject:[NSString stringWithFormat:@"%%%@%%", args.name]]; // no results
表中肯定有符合条件的项目,我只是不明白为什么 FMDB 没有返回它们。
最佳答案
您还可以尝试使用常规 SQL 查询将数据提取到 FMResultset。这对我来说效果很好。
如果您稍后需要过滤数据,请使用效果很好的 NSPredicate。
predicate =
[NSPredicate predicateWithFormat:@"authors.lastName CONTAINS %@", @"Mark" ];
filtered = [bookshelf filteredArrayUsingPredicate:predicate];
关于objective-c - FMDB 和 LIKE 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9025514/