Requête MySQL LIKE avec trait de soulignement
En SQL, l'opérateur LIKE peut être utilisé pour rechercher des modèles dans des chaînes. Cependant, lorsque vous utilisez LIKE avec un trait de soulignement (_), une attention particulière doit être prise.
Le problème
Lors de l'utilisation de LIKE pour rechercher une chaîne contenant un trait de soulignement, le trait de soulignement est traité comme un caractère générique. Cela signifie que la requête suivante :
SELECT id FROM images WHERE img_path LIKE 'abc_%'
renverra toutes les lignes de la table "images" où la colonne "img_path" commence par "abc", y compris les lignes avec des traits de soulignement (par exemple, "abcde_1.jpg" ).
La solution
Pour échapper au caractère spécial et assurer Pour que l'opérateur LIKE ne corresponde qu'aux chaînes commençant par "abc_", il est nécessaire d'échapper au trait de soulignement avec une barre oblique inverse (). La requête correcte est :
SELECT id FROM images WHERE img_path LIKE 'abc\_%'
Explication
En échappant le trait de soulignement, l'opérateur LIKE le traite comme un caractère littéral. Cela nécessite que la colonne « img_path » commence par « abc_ » afin de correspondre. Par conséquent, seules les lignes 1 et 2 sont renvoyées.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!