Leçon 8 / 9 — Chapitre 3: WHERE : LIKE, IN, BETWEEN
LIKE et la sensibilité à la casse
Le comportement de LIKE face aux majuscules/minuscules dépend du moteur SQL : certains moteurs le rendent sensible à la casse par défaut, d'autres non — un point à vérifier dans la documentation du moteur utilisé plutôt que de le supposer.
SELECT nom FROM produits WHERE nom LIKE 'cahier';
Sur un moteur sensible à la casse, ce code ne trouve aucune ligne, car le nom réel est Cahier (avec un C majuscule) et non cahier. Sur un moteur insensible à la casse par défaut, la ligne serait trouvée malgré la différence de casse.
PostgreSQL propose l'opérateur ILIKE, une version explicitement insensible à la casse de LIKE, garantissant le même comportement quel que soit le paramétrage du moteur :
SELECT nom FROM produits WHERE nom ILIKE 'cahier';
Ce code trouve Cahier indépendamment de la casse utilisée dans le motif, sur un moteur qui supporte ILIKE.
Bonne pratique à retenir : ne jamais supposer le comportement de LIKE face à la casse sans l'avoir vérifié sur le moteur SQL réellement utilisé, et préférer un opérateur explicitement insensible à la casse (comme ILIKE) quand la casse ne doit clairement pas compter.
À retenir :
- Le comportement de
LIKEface à la casse dépend du moteur SQL : à vérifier, jamais à supposer. ILIKE(PostgreSQL) offre un comportement explicitement insensible à la casse.
À vous de jouer : écrivez une requête ILIKE qui trouve Savon même en écrivant le motif tout en majuscules.
Continuez ce module
Débloquez les leçons restantes ainsi que la certification finale.
2 500 XOF / 3,81 € / 4,15 $
Débloquez les 84 leçons restantes de ce module
Votre paiement est vérifié avant l'activation de l'accès