Wörtliche Prozentzeichen im MySQL-NO_BACKSLASH_ESCAPES-Modus maskieren
Wenn in MySQL der NO_BACKSLASH_ESCAPES-Modus aktiviert ist, ist das standardmäßige Backslash()-Zeichen-Escapezeichen deaktiviert. Dies kann eine Herausforderung darstellen, wenn versucht wird, literale Prozentzeichen (%) oder Unterstriche (_) in LIKE-Abfragen zu maskieren.
Die herkömmliche Methode, ein Prozentzeichen mit % zu maskieren, wird im NO_BACKSLASH_ESCAPES-Modus wirkungslos. Wie in der bereitgestellten Abfrage veranschaulicht:
SELECT * FROM mytable WHERE mycol LIKE '5\% off'
...diese Abfrage wird nicht das gewünschte Ergebnis zurückgeben, wenn der NO_BACKSLASH_ESCAPES-Modus aktiviert ist.
Lösung mit Escape-Zeichen
Um ein wörtliches Prozentzeichen im NO_BACKSLASH_ESCAPES-Modus zu maskieren, müssen Sie ein Escape-Zeichen verwenden. Das Escape-Zeichen gibt an, dass das folgende Zeichen wörtlich und nicht als Sonderzeichen interpretiert werden soll.
In MySQL kann das Escape-Zeichen jedes nicht-alphanumerische Zeichen sein. Verwenden wir zum Beispiel das Backslash()-Zeichen als Escape-Zeichen:
select * from mytable where mycol like '5\% off' escape '\';
In dieser Abfrage gibt der Backslash vor dem Prozentzeichen an, dass das Prozentzeichen als Literalzeichen und nicht als Platzhalter behandelt werden soll .
Alternative Lösung mit unterschiedlichem Escape-Zeichen
Um die Kompatibilität mit beiden sicherzustellen Im NO_BACKSLASH_ESCAPES-Modus und im Standardmodus können Sie ein anderes Zeichen als Escape-Zeichen verwenden. Dadurch kann die Abfrage unabhängig von der Moduseinstellung funktionieren.
Zum Beispiel verwenden wir das Pipe-Zeichen (|) als Escape-Zeichen:
select * from mytable where mycol like '5|% off' escape '|';
In diesem Fall das Pipe-Zeichen vor dem Prozentzeichen dient als Escape-Zeichen, sodass die Abfrage sowohl im Standardmodus als auch im NO_BACKSLASH_ESCAPES-Modus erfolgreich ausgeführt werden kann.
Das obige ist der detaillierte Inhalt vonWie entkomme ich wörtliche Prozentzeichen im NO_BACKSLASH_ESCAPES-Modus von MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!