Aller au contenu
Filtrage avancé

IN, BETWEEN, LIKE

IN teste l'appartenance à une liste, BETWEEN un intervalle bornes comprises, LIKE un motif de texte avec jokers. Ces trois opérateurs raccourcissent les conditions répétitives de WHERE.

  • appartenance
  • intervalle
  • motif
  • pattern
  • joker
  • ESCAPE

Syntaxe

Modèle
WHERE col IN (v1, v2, v3)WHERE col BETWEEN borne_min AND borne_maxWHERE col LIKE 'motif%'

Exemple

Exemple concret
SELECT name, category, priceFROM productsWHERE category IN ('Informatique', 'Audio')  AND price BETWEEN 50 AND 100  AND name NOT LIKE 'Webcam%'ORDER BY price;-- Jeu de données : boutique-- Résultat attendu :-- Enceinte Bluetooth | Audio | 79.99-- Clavier mécanique | Informatique | 89.99

À retenir

  1. Jokers de LIKE : % remplace zéro, un ou plusieurs caractères, _ exactement un. Pour chercher un vrai %, déclarez un caractère d'échappement : LIKE '%10!%%' ESCAPE '!'.
  2. Piège : BETWEEN inclut ses deux bornes. Sur des dates avec heure, BETWEEN '2024-03-01' AND '2024-03-31' exclut '2024-03-31 14:00'. Préférez order_date >= '2024-03-01' AND order_date < '2024-04-01'.
  3. Piège : dans SQLite, LIKE ignore la casse pour les lettres ASCII seulement ('a' = 'A' mais 'é' <> 'É'). PostgreSQL est sensible à la casse et propose ILIKE.
  4. Un motif qui commence par % (LIKE '%souris') ne peut pas utiliser d'index : toute la table est parcourue.

Voir aussi