Accéder au contenu principal
Documents
FonctionsExpressionsKeywordsDéclarationsClauses

MySQL IN Mot-clé

Le mot-clé `IN` dans MySQL est utilisé pour spécifier plusieurs valeurs possibles pour une colonne dans une clause `WHERE`. Il simplifie les requêtes complexes en vous permettant de faire correspondre la valeur d'une colonne à une liste de valeurs potentielles.

Utilisation

Le mot-clé `IN` est utilisé lorsque vous devez filtrer des données sur la base d'un ensemble de valeurs spécifiées. Il est particulièrement utile pour réduire les longues conditions "OU".

SELECT column1, column2, ...
FROM table_name
WHERE column_name IN (value1, value2, ...);

Dans cette syntaxe, `WHERE nom_de_colonne IN (valeur1, valeur2, ...)` filtre les résultats pour n'inclure que les lignes où le `nom_de_colonne` correspond à l'une des valeurs spécifiées. Le mot-clé `IN` peut être utilisé avec les types de données numériques, chaînes de caractères et dates.

Exemples

1. Utilisation de base de l'IN

SELECT product_name
FROM products
WHERE category_id IN (1, 2, 3);

Cette requête permet de retrouver les noms des produits qui appartiennent aux catégories dont l'ID est 1, 2 ou 3.

2. Utilisation de IN avec des chaînes de caractères

SELECT employee_id, employee_name
FROM employees
WHERE department IN ('HR', 'Finance');

Ici, la requête récupère les identifiants et les noms des employés qui travaillent dans les départements des ressources humaines ou des finances.

3. IN avec une sous-requête

SELECT order_id, order_date
FROM orders
WHERE customer_id IN (SELECT customer_id FROM customers WHERE country = 'USA');

Cette requête utilise `IN` avec une sous-requête pour sélectionner les commandes effectuées par des clients situés aux Etats-Unis.

Conseils et bonnes pratiques

  • Limitez la taille de la liste. Veillez à ce que la liste des valeurs soit courte afin de maintenir les performances de la requête.
  • A utiliser pour une logique claire. Remplacez les conditions multiples `OR` par `IN` pour plus de clarté et de simplicité.
  • Combinez les sous-requêtes avec précaution. Veillez à ce que les sous-requêtes soient optimisées, car elles peuvent affecter les performances.
  • Considérez NOT IN. Utilisez `NOT IN` pour exclure efficacement des valeurs spécifiques de votre ensemble de résultats.
  • Manipulez les NULL avec précaution. Sachez que si la liste des valeurs inclut `NULL`, cela peut conduire à des résultats inattendus car `IN` ne correspond pas aux valeurs `NULL`.
  • Considérations relatives à la performance. Dans certains cas, l'utilisation de `JOIN` peut offrir de meilleures performances que `IN`. Évaluez le contexte de votre requête pour choisir la meilleure approche.
  • IN vs EXISTS. Pensez à utiliser `EXISTS` lorsque vous avez affaire à des sous-requêtes qui vérifient l'existence de lignes. `EXISTS` peut être plus efficace dans certains cas où l'existence d'une ligne est plus importante que la correspondance avec des valeurs spécifiques.

Amélioration de SQL pour les débutants

Acquérir les compétences SQL pour interagir avec vos données et les interroger.
Commencez à apprendre gratuitement