Maison > base de données > tutoriel mysql > Pourquoi les clauses WHERE et LIKE de MySQL nécessitent-elles un échappement de barre oblique inverse différent ?

Pourquoi les clauses WHERE et LIKE de MySQL nécessitent-elles un échappement de barre oblique inverse différent ?

Patricia Arquette
Libérer: 2025-01-06 20:34:41
original
618 Les gens l'ont consulté

Why Do MySQL's WHERE and LIKE Clauses Require Different Backslash Escaping?

Échapper aux barres obliques inverses dans MySQL : utilisation dans les clauses WHERE et LIKE

Considérez la requête suivante qui recherche un titre contenant une barre oblique inverse :

(SELECT * FROM `titles` WHERE title = 'test\')
UNION ALL
(SELECT * FROM `titles` WHERE title LIKE 'test\\')
Copier après la connexion

Le résultat montre que la barre oblique inverse n'est pas échappée dans la clause WHERE. Cependant, une barre oblique inverse supplémentaire est requise pour la clause LIKE.

Pourquoi la différence ?

Dans MySQL, les barres obliques inverses () fonctionnent par défaut comme caractères d'échappement dans LIKE. Selon le manuel MySQL pour LIKE :

"Parce que MySQL utilise la syntaxe d'échappement C dans les chaînes... vous devez doubler tout '' que vous utilisez dans les chaînes LIKE. Par exemple, pour rechercher 'n', spécifiez comme 'n'. Pour rechercher '', spécifiez-le comme '\' ; contre."

Echaping des barres obliques inverses

Cependant, MySQL offre la possibilité de modifier le caractère d'échappement à l'aide du mot-clé ESCAPE. Par exemple, la requête suivante utiliserait un caractère barre verticale (|) comme caractère d'échappement :

SELECT * FROM `titles` WHERE title LIKE 'test\' ESCAPE '|'
Copier après la connexion

Avec cette requête, une seule barre oblique inverse est requise dans la clause LIKE, car le caractère barre verticale sera utilisé pour m'échapper.

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!

source:php.cn
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