我无法让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没有返回它们。
答案 0 :(得分:1)
您还可以尝试使用常规SQL查询将数据提取到FMResultset。这对我来说很好。
如果您需要稍后过滤数据,请使用效果很好的NSPredicate。
NSPredicate docs
predicate =
[NSPredicate predicateWithFormat:@"authors.lastName CONTAINS %@", @"Mark" ];
filtered = [bookshelf filteredArrayUsingPredicate:predicate];
答案 1 :(得分:0)
[buffer appendString:[NSString stringWithFormat:@" Name LIKE '%@dam%@' ",@"%",@"%"];