Échappement des caractères de pourcentage littéral et de trait de soulignement dans le mode NO_BACKSLASH_ESCAPES de MySQL
Dans MySQL, le mode NO_BACKSLASH_ESCAPES désactive le caractère barre oblique inverse traditionnelle () comme échappement mécanisme dans les requêtes LIKE. Ce mode introduit des défis lorsque vous tentez d'échapper aux caractères de pourcentage littéral (%) et de trait de soulignement (_).
Méthode d'échappement standard
La méthode standard pour échapper au caractère de pourcentage dans une requête LIKE doit la précéder d'une barre oblique inverse (). Cependant, en mode NO_BACKSLASH_ESCAPES, cette méthode ne fonctionnera pas.
Alternative au caractère d'échappement
Pour échapper aux caractères littéraux sans utiliser la barre oblique inverse, vous pouvez spécifier un caractère d'échappement alternatif en utilisant le mot clé ESCAPE. Par exemple :
SELECT * FROM mytable WHERE mycol LIKE '5\% off' ESCAPE '\';
Échappement indépendant de la version
Pour créer une requête qui fonctionne quel que soit le paramètre du mode NO_BACKSLASH_ESCAPES, vous pouvez utiliser un caractère d'échappement différent. Par exemple, le caractère barre verticale (|) peut être défini comme caractère d'échappement :
SELECT * FROM mytable WHERE mycol LIKE '5|% off' ESCAPE '|';
En spécifiant un caractère d'échappement alternatif, vous pouvez efficacement échapper les caractères littéraux % et _ même en mode NO_BACKSLASH_ESCAPES. Cela permet la création de requêtes LIKE qui fonctionnent de manière fiable dans différentes configurations MySQL.
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!