Maison >base de données >tutoriel mysql >Comment puis-je interroger efficacement une table en fonction de plusieurs valeurs de colonnes ?
Interrogation d'une table basée sur plusieurs valeurs de colonnes : une approche plus intelligente
Lors de l'interrogation d'une table basée sur un ensemble de valeurs pour une seule colonne , la clause IN fournit une solution pratique. Cependant, si vous devez effectuer une requête sur plusieurs colonnes, la syntaxe de la clause IN par défaut peut ne pas suffire.
Dans de tels cas, plutôt que de recourir à des jointures ou des sous-requêtes complexes, vous pouvez utiliser une méthode simple et efficace :
SELECT city FROM user WHERE (firstName, lastName) IN (('a', 'b'), ('c', 'd'));
Cette requête vérifie efficacement si la combinaison de firstName et lastName pour chaque ligne de la table utilisateur correspond à l'un des tuples spécifiés. Si une correspondance est trouvée, la valeur de la ville correspondante est renvoyée.
Cette technique élimine le besoin de tables intermédiaires ou de longues conditions OR. Il maintient également l'évaluation basée sur les ensembles de SQL, ce qui permet une exécution de requête efficace et optimisée.
Par exemple, considérons une table utilisateur contenant des colonnes pour firstName, lastName et city. Étant donné une liste de tuples représentant des paires (firstName, lastName), vous pouvez utiliser la requête ci-dessus pour récupérer les villes associées à ces paires.
En tirant parti de cette méthode, vous pouvez facilement effectuer des requêtes complexes impliquant plusieurs valeurs de colonnes sans compromettre les performances ou les ressources de la base de données. Il constitue une solution privilégiée et élégante dans les situations où les clauses IN traditionnelles sont insuffisantes.
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!