Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment rechercher une barre oblique (\) dans MySQL ? et pourquoi échapper (\) n'est pas requis pour where (=) mais pour Like est requis?

\ fonctionne comme un caractère d'échappement dans LIKE par défaut.

À partir du manuel pour LIKE :

Étant donné que MySQL utilise la syntaxe d'échappement C dans les chaînes (par exemple, « \n » pour représenter un caractère de nouvelle ligne), vous devez doubler tout « \ » que vous utilisez dans les chaînes LIKE. Par exemple, pour rechercher "\n", spécifiez-le comme "\\n". Pour rechercher "\", spécifiez-le comme "\\\\" ; c'est parce que les barres obliques inverses sont supprimées une fois par l'analyseur et à nouveau lorsque la correspondance de modèle est effectuée , laissant une seule barre oblique inverse à comparer.

Vous pouvez changer cela en spécifiant un autre caractère d'échappement, comme dans :

SELECT * FROM `titles` WHERE title LIKE 'test\\' ESCAPE '|'