我有一个包含的数据库 NSString *编号 NSSet *值
我可以根据字符串Number轻松获得所有结果,包括以下内容:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"Number LIKE[c] %@", numberValue];
NSArray *result = [DB MR_findAllWithPredicate:predicate inContext:_context];
如果不是Number我要传递一个值数组,我如何在db中找到包含给定数组(NSSet)的所有结果?
NSPredicate *predicate = [NSPredicate predicateWithFormat: ????
NSArray *result = [DB MR_findAllWithPredicate:predicate inContext:_context];
更新
基于Igoris回答:
[NSPredicate predicateWithFormat:@“(Values.@count == %d) AND (SUBQUERY(Values, $x, $x IN %@).@count == %d)", allValues.count, allValues, allValues.count];
这似乎有效,但它不会返回结果中的所有值。
答案 0 :(得分:0)
只需使用IN
:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"Number IN[c] %@", numberValues];
numberValues
是包含您正在寻找的数字的NSArray
<强>更新强>
在数据结构澄清后,我想出了以下谓词来获取对象:
[NSPredicate predicateWithFormat:@“(Values.@count == %d) AND (SUBQUERY(Values, $x, $x IN %@).@count == %d)", allValues.count, allValues, allValues.count];
答案 1 :(得分:0)
ANY和NONE怎么样?
[NSPredicate predicateWithFormat:@"ANY number == %@", numberValues];