Maison > base de données > tutoriel mysql > Comment puis-je utiliser la clause IN pour interroger plusieurs colonnes dans SQL ?

Comment puis-je utiliser la clause IN pour interroger plusieurs colonnes dans SQL ?

Patricia Arquette
Libérer: 2024-12-28 12:02:10
original
538 Les gens l'ont consulté

How Can I Use the IN Clause to Query Multiple Columns in SQL?

Interrogation de plusieurs colonnes dans la clause IN en SQL

Lors de l'interrogation d'une table de base de données en fonction d'un ensemble de valeurs pour une colonne donnée, le La clause IN est une option pratique. Cependant, lorsqu'il s'agit de plusieurs colonnes, la clause IN devient inutilisable.

Pour surmonter ce défi, l'approche habituelle consiste à utiliser des jointures ou la clause EXISTS. Cependant, ces méthodes nécessitent à la fois que la table principale et les données de recherche soient présentes dans la base de données.

Considérons un cas d'utilisation dans lequel vous disposez d'une table User avec des colonnes (firstName, lastName, City) et vous devez récupérer les villes pour une liste de tuples (prénom, nom). Deux solutions potentielles émergent :

Solution 1 :

Construire une longue requête SELECT impliquant des conditions OR :

SELECT city FROM user WHERE (firstName=x and lastName=y) or (firstName=a and lastName=b) or ...
Copier après la connexion

Solution 2 :

Créez une table intermédiaire contenant toutes les valeurs firstName et lastName et effectuez une jointure entre les Table utilisateur et table intermédiaire.

Solution alternative :

Heureusement, il existe un moyen simple d'interroger plusieurs colonnes à l'aide de la clause IN :

SELECT city FROM user WHERE (firstName, lastName) IN (('a', 'b'), ('c', 'd'));
Copier après la connexion

Démonstration SQLfiddle :

[Sqlfiddle Démo]()

Cette solution résout efficacement le problème de l'interrogation de plusieurs colonnes dans la clause IN sans recourir aux jointures ou à la clause EXISTS. Il fournit une approche efficace et concise pour récupérer les données souhaitées.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal