2010-08-01 3 views
3

Disons que j'ai une liste d'ID et que je veux voir si des lignes existent déjà avec ces ID dans ma base de données SQL. Existe-t-il une seule commande SQL que je puisse émettre pour récupérer le sous-ensemble de la liste d'ID qui n'est pas déjà représentée dans la base de données? Je pourrais itérer sur chaque ID dans mon code et émettre une vérification SQL distincte pour chaque ID, mais cela semble inefficace. J'essaye de faire ceci contre une base de données de sqlite. Merci!SQL: vérifier pour voir quels ID existent déjà

Répondre

3

Laissez tomber les ID dans une table puis essayez:

SELECT C.id 
FROM checkids C 
LEFT JOIN mytable M 
ON M.id = C.id 
WHERE M.id IS NULL 
0

Vous pouvez utiliser l'opérateur IN; Par exemple, pour tester les ID 1, 2, 8 et 42, vous feriez:

SELECT id 
FROM tbl 
WHERE id IN (1, 2, 8, 42);
Questions connexes