Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Warum muss ich doppelt entkommen (4 \ verwenden), um einen umgekehrten Schrägstrich ( \ ) in reinem SQL zu finden?

Sie maskieren zuerst für die Zeichenfolgensyntax, dann für LIKE Syntax.

In LIKE Zeichen % und _ haben eine besondere Bedeutung, wenn Sie also nach wörtlich % suchen möchten , müssen Sie \% verwenden , und wenn Sie nach dem Literal \% suchen möchten Sie müssen den Backslash wie in \\% maskieren .

In Zeichenfolgensyntax " hat offensichtlich eine besondere Bedeutung, wenn Sie also ein Anführungszeichen in die Zeichenfolge einfügen möchten, müssen Sie es als \" maskieren , und um das Literal \" einzuschließen In der Zeichenfolge müssen Sie den Backslash wie in \\" maskieren .

In beiden Syntaxen müssen Sie also \ maskieren .

Wenn Sie \ nicht verwenden möchten Um das LIKE-Muster zu umgehen, können Sie das Schlüsselwort ESCAPE verwenden. Zum Beispiel:

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

Auf diese Weise müssen Sie |% schreiben , |_ oder || um diesen Sonderzeichen zu entkommen.