2010-12-03 10 views
1

Je suis débutant dans l'objectif C et j'ai besoin d'exécuter une requête en php pourrait être comme suit:« non » dans les données de base

$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); 

Ma première question est: est-il une fonction similaire à le sql "NOT IN"?

Cependant, j'essaie de le faire par moi-même, j'ai ensuite sélectionné les lignes et les mettre dans le NSArray *alreadyDone. Deuxième question: comment puis-je créer une requête dans Core Data avec NSPredicate pour comparer un champ avec un objet que je possède déjà, dans l'exemple chaque élément de alreadyDone?

Merci beaucoup pour la réponse et désolé pour mon anglais (je suis italien).

Répondre

6

Les prédicats ont un composé NOT IN bien que sa syntaxe soit légèrement différente. Vous auriez besoin de quelque chose comme:

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

Vous pouvez remplacer une variable de tableau si nécessaire.

+0

Oui, mais le problème est que dans les données de base, je n'ai pas de champ d'identification explicite, et le nom pourrait être le même. Comment puis-je dire à Core Data d'utiliser l'objet Users * pour la correspondance? –

+0

Ok, je peux juste utiliser '% @'. –