Bonjour,
Je vais devoir construire une requ�te dans laquelle je dois v�rifier si un champ contient un terme.
Forc�ment, la premi�re id�e serait la suivante pour v�rifier cette clause :
Je pr�cise que le mets le Lower car le terme que je vais chercher peut �tre pr�c�d� et/ou suivi d'autres mots (le cauchemar de la recherche de mots dans un champ libre, en somme).
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2 WHERE LOWER(champ) LIKE '%terme%'
Cependant, j'ai d�j� entendu que le LIKE n'�tait pas fou en termes de performances (puisqu'� chaque enregistrement il va devoir parcourir toute la cha�ne de caract�res � la recherche du terme, et d�caler d'un caract�re � chaque fois).
Donc je voudrais savoir s'il existe une alternative � LIKE, qui me permettrait d'avoir une r�ponse aussi fiable � ma requ�te, en consommant moins de ressources � l'ex�cution (je sais d'avance qu'une fois la requ�te finalis�e elle risque d'�tre ex�cut�e de fa�on cyclique, par exemple mensuellement).
J'ai commenc� � chercher un peu, et je suis tomb� sur la fonction ilike qui serait insensible � la casse, ce qui me permettrait la simplification suivante :
Est-ce meilleur que la combinaison LOWER + LIKE?
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2 WHERE champ ILIKE '%terme%'
Est-ce que les habitu�s du SQL (en particulier SQL Server, pour mon cas) connaissent une m�thode plus efficace?
Merci d'avance pour vos conseils
(petit edit pour les majuscules, histoire de faire propre)
Partager