Maison >base de données >tutoriel mysql >Comment interroger efficacement plusieurs colonnes avec la clause SQL IN ?
Lors de l'exécution d'une requête sur une table basée sur plusieurs colonnes à l'aide de la clause IN, la construction d'une seule requête avec plusieurs conditions OR devient fastidieuse . Au lieu de cela, on peut utiliser les approches suivantes :
La solution la plus directe consiste à utiliser la version tuple de la clause IN. Par exemple, étant donné la table User avec les colonnes firstName, lastName et City, la requête pour récupérer les villes pour une liste de tuples (firstName, lastName) serait :
SELECT City FROM User WHERE (firstName, lastName) IN (('a', 'b'), ('c', 'd'));
Une autre option consiste à créer une table intermédiaire avec toutes les combinaisons possibles (prénom, nom), puis à effectuer une jointure entre cette table et la table Utilisateur. Cependant, cette méthode nécessite une configuration et une maintenance supplémentaires, ce qui peut ne pas être idéal pour les grands ensembles de données.
Pour les scénarios généraux, l'approche de la clause tuple IN est préférée en raison de sa simplicité et de sa flexibilité. Cela élimine le besoin de construction de requêtes complexes ou de tables supplémentaires. Toutefois, si les données de recherche sont stockées en dehors de la base de données, des méthodes alternatives telles que des jointures ou des sous-requêtes peuvent être nécessaires.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!