[SQL] Retrouver un mot complet dans une chaine
On me demande de faire une recherche sur un mot complet (séparé des autres mots par un espace, un tiret, une apostrophe, un slash ou un guillemet). Petit exemple pour être clair :
Contenu du champ prenom de la table client :
YANN
YANNICK
YANN-LOIC
YANNIS
JEAN YANN
TRYANN
Ma recherche sur "YANN" doit me retourner :
YANN
YANN-LOIC
JEAN YANN
A part faire quelque chose de très lourd comme ça :
Code:
1 2 3 4 5
|
select distinct prenom from client where prenom = 'YANN'
OR prenom like '% YANN %' OR prenom like 'YANN %' OR prenom like '% YANN'
OR prenom like '%-YANN-%' OR prenom like 'YANN-%' OR prenom like '%-YANN'
OR... |
je ne vois pas.
Existe-t-il une manière plus élégante et plus performante pour arriver au même résultat ?