name <> myname
Run Code Online (Sandbox Code Playgroud)
我觉得问这个问题有点愚蠢,但我在子查询中使用上面的谓词。我期望看到名称不等于我的名字的所有行。但是,名称具有 NULL 值的行不会被返回。这是正确的行为吗?
是的,这是可以预料的。请参阅“谓词编程指南”中的空值:
比较谓词不与任何带有 null 的值匹配,除了 null (
nil) 或NSNullnull 值(即, ($value == nil) 返回YESif$valueisnil)。
...
如果要匹配空值,除了其他比较之外,还必须包括特定的测试,...
这意味着如果为 NULL,则和 "name = myname"的"name <> myname"计算结果均为 NO name
。
您可以将谓词更改为
name <> myname OR name = NULL
Run Code Online (Sandbox Code Playgroud)
涵盖这两种情况。
| 归档时间: |
|
| 查看次数: |
1422 次 |
| 最近记录: |