Escape-Prozent- und Unterstrichzeichen in MySQL mit dem NO_BACKSLASH_ESCAPES-Modus
Wenn MySQL im NO_BACKSLASH_ESCAPES-Modus ausgeführt wird, ist dies die Standardmethode zum Escapen von Literalprozenten (%) und Unterstrich (_)-Zeichen mit dem Backslash ()-Zeichen nicht verwendet werden anwendbar. Dieser Artikel bietet alternative Möglichkeiten, diese Zeichen speziell in diesem Modus zu maskieren.
Problem
Betrachten Sie das folgende Beispiel: Eine Spalte in einer MySQL-Tabelle enthält Werte wie „5 % Rabatt“ und „50 % Rabatt“. Die folgende LIKE-Abfrage, die das standardmäßige Backslash-Escape-Zeichen verwendet, funktioniert im NO_BACKSLASH_ESCAPES-Modus nicht:
SELECT * FROM mytable WHERE mycol LIKE '5\% off'
Lösung
Im NO_BACKSLASH_ESCAPES-Modus können Sie Prozente maskieren und Unterstrichzeichen mit einer anderen Escape-Sequenz. Eine Möglichkeit besteht darin, das Backslash-Zeichen vor dem Escape-Schlüsselwort zu verwenden. Zum Beispiel:
SELECT * FROM mytable WHERE mycol LIKE '5\% off' ESCAPE '\'
Alternative Lösung
Alternativ können Sie ein anderes Zeichen zum Escapezeichen verwenden, beispielsweise das Pipe-Zeichen (|). Die folgende Abfrage funktioniert unabhängig von der NO_BACKSLASH_ESCAPES-Moduseinstellung:
SELECT * FROM mytable WHERE mycol LIKE '5|% off' ESCAPE '|'
Mit diesen Techniken können Sie literale Prozent- und Unterstrichzeichen in MySQL-Abfragen effektiv maskieren, selbst wenn Sie sich im NO_BACKSLASH_ESCAPES-Modus befinden.
Das obige ist der detaillierte Inhalt vonWie kann ich Prozent- und Unterstrichzeichen im NO_BACKSLASH_ESCAPES-Modus von MySQL maskieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!