Mysql
 sql >> Database >  >> RDS >> Mysql

Come cercare la barra (\) in MySQL? e perché l'escape (\) non è richiesto per dove (=) ma per Like è richiesto?

\ funziona come carattere di escape in LIKE per impostazione predefinita.

Dal manuale per LIKE :

Poiché MySQL utilizza la sintassi di escape C nelle stringhe (ad esempio, "\n" per rappresentare un carattere di nuova riga), è necessario raddoppiare qualsiasi "\" utilizzato nelle stringhe LIKE. Ad esempio, per cercare "\n", specificarlo come "\\n". Per cercare “\”, specificarlo come “\\\\”; questo perché le barre inverse vengono eliminate una volta dal parser e di nuovo quando viene eseguita la corrispondenza del modello , lasciando una singola barra rovesciata da confrontare.

Puoi cambiarlo specificando un altro carattere di escape, come in:

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