0
name <> myname
我覺得有點愚蠢的問這個問題,但我在子查詢中使用上面的謂詞。我期待看到名稱與我的名字不相等的所有行。但是,沒有返回具有名稱NULL值的行。這是正確的行爲?核心數據不等於謂詞
name <> myname
我覺得有點愚蠢的問這個問題,但我在子查詢中使用上面的謂詞。我期待看到名稱與我的名字不相等的所有行。但是,沒有返回具有名稱NULL值的行。這是正確的行爲?核心數據不等於謂詞
是的,這是可以預料的。見Null Values的「謂詞編程指南」中:
比較謂詞不匹配除空 (
nil
)與空的任何數值或NSNull
空值(即,($value == nil
)返回YES
如果$value
是nil
)。
...
如果你想匹配空值,您必須包含除其他比較具體的測試,...
這意味着,都"name = myname"
和"name <> myname"
評估爲NO,如果name
是NULL。
您可以將謂詞更改爲
name <> myname OR name = NULL
涵蓋這兩種情況。
如果你在玩字符串,'<>'可能是一個不好的解決方案。請參閱'LIKE','NOT'等。 – Larme