Maison > base de données > tutoriel mysql > Comment puis-je interroger efficacement une table en utilisant plusieurs colonnes dans une clause IN ?

Comment puis-je interroger efficacement une table en utilisant plusieurs colonnes dans une clause IN ?

Mary-Kate Olsen
Libérer: 2024-12-29 02:12:10
original
384 Les gens l'ont consulté

How Can I Efficiently Query a Table Using Multiple Columns in an IN Clause?

Interrogation d'une table avec plusieurs colonnes dans une clause IN

En SQL, l'utilisation de la clause IN vous permet de filtrer les données en fonction d'un ensemble de valeurs pour une colonne spécifique. Cependant, utiliser la clause IN avec plusieurs colonnes peut s'avérer difficile.

Pour surmonter cette limitation, diverses solutions ont été proposées, notamment l'utilisation de jointures ou de la clause EXISTS. Cependant, ces méthodes nécessitent que la table principale et les données de recherche résident dans la base de données.

Solutions alternatives

Pour les cas où la table principale et les données de recherche sont toutes deux non disponible dans la base de données, des solutions alternatives peuvent être utilisées :

  • Construire une sélection complexe Requête :
    Créez une requête de sélection qui spécifie des conditions individuelles pour chaque paire de valeurs, telles que :
SELECT city FROM user WHERE (firstName='x' AND lastName='y') OR (firstName='a' AND lastName='b') OR ...
Copier après la connexion
  • Créez une table intermédiaire et rejoignez :
    Téléchargez les valeurs de recherche dans une table intermédiaire et joignez cette table à la table principale pour filtrer les data.

Solution préférée

La solution préférée dépend du cas d'utilisation spécifique :

  • Pour les petits ensembles de données, le complexe L'approche de requête de sélection peut être suffisante.
  • Pour les ensembles de données plus volumineux, la table intermédiaire et la méthode de jointure offrent des améliorations performances.

Clause IN avec plusieurs colonnes

Cependant, une solution plus récente est apparue qui simplifie le processus d'interrogation de 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

Cette approche vous permet de spécifier plusieurs colonnes entre parenthèses de la clause IN, ce qui rend plus pratique et efficace le filtrage des données en fonction de combinaisons de valeurs.

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