Maison > base de données > tutoriel mysql > Comment échapper aux caractères de pourcentage et de soulignement dans le mode NO_BACKSLASH_ESCAPES de MySQL ?

Comment échapper aux caractères de pourcentage et de soulignement dans le mode NO_BACKSLASH_ESCAPES de MySQL ?

Mary-Kate Olsen
Libérer: 2024-12-01 00:08:11
original
879 Les gens l'ont consulté

How to Escape Percent and Underscore Characters in MySQL's NO_BACKSLASH_ESCAPES Mode?

É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'
Copier après la connexion

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 '\'
Copier après la connexion

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 '|'
Copier après la connexion

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal