为啥我的子查询谓词中的 LIKE[c] 与此名称不匹配?
Posted
技术标签:
【中文标题】为啥我的子查询谓词中的 LIKE[c] 与此名称不匹配?【英文标题】:Why does the LIKE[c] in my subquery predicate not match this name?为什么我的子查询谓词中的 LIKE[c] 与此名称不匹配? 【发布时间】:2010-06-19 17:51:01 【问题描述】:我有两个实体:Department 和 DepartmentInfo。每个部门都有一个或多个 DepartmentInfo 对象。在 DepartmentInfo 中,有一个 departmentName 属性。
我想获取所有具有特定部门名称的部门对象。所以我为 Department 实体创建了一个 NSFetchRequest,并使用了这个获取请求:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SUBQUERY(departmentName, $s, $s.departmentName LIKE[c] %@).@count > 0", @"Marketing"];
它有效,但是:LIKE[c] 无效!我必须与确切的部门名称相匹配。如果我这样做,我将无法匹配:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SUBQUERY(departmentName, $s, $s.departmentName LIKE[c] %@).@count > 0", @"Mar"];
这里有什么问题?
【问题讨论】:
使用@"Mar*" 你会匹配 【参考方案1】:由于 Jason Coco 没有将此作为答案发布,我就这样做了:
使用@"Mar*" 你会匹配
【讨论】:
【参考方案2】:这里不需要使用SUBQUERY
。您可以使用以下方法获得相同的结果:
ANY departmentInfo.departmentName LIKE[c] 'Mar*'
对一组Department
对象执行该操作,它会起作用。
【讨论】:
以上是关于为啥我的子查询谓词中的 LIKE[c] 与此名称不匹配?的主要内容,如果未能解决你的问题,请参考以下文章