sql >> Databasteknik >  >> RDS >> Mysql

Varför måste jag dubbel-escape (använd 4 \) för att hitta ett snedstreck ( \ ) i ren SQL?

Du escape först för strängsyntaxen, sedan för LIKE syntax.

I LIKE tecken % och _ har speciell betydelse, så om du vill söka efter bokstavlig % måste du använda \% , och om du vill söka efter bokstavlig \% du måste undkomma omvänt snedstreck som i \\% .

I strängsyntax " har uppenbarligen speciell betydelse, så om du vill inkludera citattecken i strängen måste du undkomma det som \" , och för att inkludera bokstavlig \" i strängen måste du undkomma snedstrecket som i \\" .

Så i båda syntaxerna måste du escape \ .

Om du inte vill använda \ för att undvika LIKE-mönstret kan du använda nyckelordet ESCAPE. Till exempel:

...  where test LIKE "a\\b%" ESCAPE '|';

På så sätt måste du skriva |% , |_ eller || för att undkomma dessa speciella tecken.



  1. SQL-serverunion men håll ordning

  2. Oracle-databasanslutning i web.config asp.net

  3. Få det senast infogade ID:t i en trigger?

  4. PHP Object Property har parenteser i sig