Heim > Backend-Entwicklung > PHP-Tutorial > Warum benötige ich doppelte Backslashes, wenn ich mit dem LIKE-Operator von MySQL nach einem Schrägstrich suche?

Warum benötige ich doppelte Backslashes, wenn ich mit dem LIKE-Operator von MySQL nach einem Schrägstrich suche?

Linda Hamilton
Freigeben: 2024-11-02 19:20:02
Original
1056 Leute haben es durchsucht

Why Do I Need Double Backslashes When Searching for a Slash Using MySQL's LIKE Operator?

Grundlegendes zu MySQL-Escape-Sequenzen für Suchabfragen

In MySQL gibt es bei der Suche nach einem Schrägstrich () mithilfe der WHERE-Klausel eine Unterschied in der Notwendigkeit von Escape-Sequenzen je nach verwendetem Operator.

WHERE-Klausel mit Gleichheitsoperator (=)

Für den Gleichheitsoperator (=) kein zusätzliches Escape Reihenfolge erforderlich ist. Die folgende Abfrage findet korrekt einen Datensatz mit einem Titel, der einen Schrägstrich enthält:

<code class="sql">SELECT * FROM `titles` WHERE title = 'test\'</code>
Nach dem Login kopieren

Dies liegt daran, dass der Backslash intern von MySQL maskiert wird, bevor der Vergleich ausgeführt wird.

WHERE Klausel mit LIKE-Operator

Bei Verwendung des LIKE-Operators ist jedoch eine zusätzliche Escape-Sequenz für den Backslash erforderlich. Dies liegt daran, dass der LIKE-Operator der C-Escape-Syntax folgt, bei der zwei Backslashes verwendet werden, um einen anderen Backslash zu maskieren. Um mit LIKE nach einem Schrägstrich zu suchen, müssen Sie daher die folgende Syntax verwenden:

<code class="sql">SELECT * FROM `titles` WHERE title LIKE 'test\\'</code>
Nach dem Login kopieren

Standard-Escape-Zeichen

Standardmäßig ist der Backslash () wird als Escape-Zeichen in LIKE-Ausdrücken verwendet. Dies kann durch Angabe eines anderen Escape-Zeichens mithilfe der ESCAPE-Klausel geändert werden. Die folgende Abfrage verwendet beispielsweise das Pipe-Zeichen (|) als Escape-Zeichen:

<code class="sql">SELECT * FROM `titles` WHERE title LIKE 'test\' ESCAPE '|'</code>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWarum benötige ich doppelte Backslashes, wenn ich mit dem LIKE-Operator von MySQL nach einem Schrägstrich suche?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage