Meilleur moyen de vérifier qu'une liste d'éléments existe dans une base de données SQL de la colonne?
Si j'ai une liste d'éléments, dire
apples
pairs
pomegranites
et je tiens à identifier qui n'existent pas dans les "fruits" d'une colonne dans une SQL de la table DB.
- Rapide de la performance est la préoccupation principale.
- Doit être portable sur différentes implémentations de SQL.
- La liste d'entrée peut contenir un nombre arbitraire d'entrées.
Je ne peux penser à quelques façons de le faire, j'ai pensé jeter là-bas et voir ce que vous en dites.
- Oh, et je n'aime pas ce que l'ordre des éléments dans la table, c'est juste que chaque élément existe.
InformationsquelleAutor brabster | 2009-01-13
Vous devez vous connecter pour publier un commentaire.
Depuis la liste des fruits que vous choisissez de peut être arbitrairement long, je vous suggère les suivantes:
Une jointure externe gauche devrait être beaucoup plus rapide que le "non" ou d'autres types de requêtes.
Faire la liste de recherche dans une chaîne de caractères qui ressemble '|fruit1|fruit2|...fruitn|' et faire de votre clause where:
Ou, analyser ladite chaîne de caractères dans une table temporaire ou une variable de table et ne
where not in (select fruit from temptable)
. En fonction du nombre d'articles que vous recherchez et le nombre d'éléments en cours de recherche, cette méthode pourrait être plus rapide.