Échapper au pourcentage littéral et aux caractères de soulignement dans MySQL avec le mode NO_BACKSLASH_ESCAPES
Lorsque MySQL s'exécute en mode NO_BACKSLASH_ESCAPES, la méthode standard pour échapper au pourcentage littéral (%) et traits de soulignement (_) utilisant le caractère barre oblique inverse () n’est pas applicable. Cet article propose d'autres moyens d'échapper ces caractères spécifiquement dans ce mode.
Problème
Considérons l'exemple suivant : Une colonne dans une table MySQL contient des valeurs telles que "5 % de réduction" et "50 % de réduction". La requête LIKE suivante, qui utilise le caractère d'échappement barre oblique inverse standard, ne fonctionnera pas en mode NO_BACKSLASH_ESCAPES :
SELECT * FROM mytable WHERE mycol LIKE '5\% off'
Solution
En mode NO_BACKSLASH_ESCAPES, vous pouvez échapper au pourcentage et soulignez les caractères en utilisant une séquence d'échappement différente. Une option consiste à utiliser la barre oblique inverse précédée du mot-clé d'échappement. Par exemple :
SELECT * FROM mytable WHERE mycol LIKE '5\% off' ESCAPE '\'
Solution alternative
Vous pouvez également utiliser un caractère différent pour vous échapper, tel que le caractère barre verticale (|). La requête ci-dessous fonctionnera quel que soit le paramètre du mode NO_BACKSLASH_ESCAPES :
SELECT * FROM mytable WHERE mycol LIKE '5|% off' ESCAPE '|'
En utilisant ces techniques, vous pouvez efficacement échapper aux pourcentages littéraux et aux caractères de soulignement dans les requêtes MySQL, même en mode NO_BACKSLASH_ESCAPES.
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!