2010-12-03 64 views
1

我的目标C新手,我需要执行一个查询,在PHP可能如下:“不”的核心数据

$alreadyDone = array(); 
do { 
    $query = "SELECT * FROM myTable WHERE id NOT IN (".implode(",", $alreadyDone).")"; 
    $res = mysql_query($query); 
    $n = mysql_num_rows($res); 
    while ($r = mysql_fetch_assoc($res)) { 
     // do some stuff 
     $alreadyDone[] = $r['id']; 
    } 
} while ($n > 1); 

我的第一个问题是:是否有类似的功能sql“NOT IN”?

但是我尝试自己做,然后我选择了行,把它放在NSArray *alreadyDone。 第二个问题:我如何可以建立在核心数据的查询与NSPredicate到现场的alreadyDone每个元素比较的对象我已经拥有,在例子吗?

感谢很多答案,对不起我的英语(我是意大利人)。

回答

6

谓词具有复合NOT IN虽然它在语法上略有不同。你需要这样的东西:

NOT (name IN { 'Ben', 'Melissa', 'Matthew' }) 

您可以根据需要替换数组变量。

+0

没错,但问题是,在核心数据我没有一个明确的ID字段,并且名称可能是相同的。我如何告诉Core Data使用Users *对象进行匹配? – 2010-12-03 23:59:47