Échapper aux caractères spéciaux en mode NO_BACKSLASH_ESCAPES
Lorsque l'option NO_BACKSLASH_ESCAPES est activée dans MySQL, la méthode standard pour échapper un littéral "%" ou " _" l'utilisation de "%" ne fonctionne pas. Cela présente un défi lors de l'exécution de requêtes LIKE.
Solution 1 : Utilisation d'un caractère d'échappement
En mode NO_BACKSLASH_ESCAPES, vous pouvez utiliser un caractère d'échappement pour protéger les caractères spéciaux tels que " %". Le caractère d'échappement est spécifié dans la requête LIKE après le mot-clé d'échappement.
Par exemple :
select * from mytable where mycol like '5\% off' escape '\';
Dans cette requête, "" est utilisé comme caractère d'échappement, donc "%" représente le caractère littéral "%".
Solution 2 : Utiliser un caractère spécial différent
Si vous Vous ne pouvez pas utiliser une barre oblique inverse comme caractère d'échappement, vous pouvez choisir un caractère spécial différent et l'utiliser à la place. Par exemple :
select * from mytable where mycol like '5|% off' escape '|';
Ici, "|" est utilisé comme caractère d'échappement, donc "5|% off" représente une chaîne avec un caractère littéral "%".
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!