Ich habe eine Tabelle, in der eine Spalte Sonderzeichen wie '/' Schrägstrich und '\' Schrägstrich erlaubt.
Jetzt, wenn ich versuche, solche Aufzeichnungen von der Tabelle zu suchen, kann ich diese bekommen.
Beispiel: abc \ def oder abc / def Ich erzeuge Suchabfrage, die wie
ist %Vor%Es gibt 0 Zeilen zurück, aber tatsächlich ist 1 Datensatz vorhanden. Wie schreibe ich eine Abfrage in diesem Fall, lass es mich wissen.
Danke.
Barmar ist teilweise korrekt (also +1),
Also besteht der Trick darin, NUR den umgekehrten Schrägstrich zu dozieren, denn bei String-Escapes wird nur ein einziger Escape benötigt.
Zum Beispiel
'
muss nur einmal entkommen LIKE '%\'%'
\
abzufragen, müssen Sie den Doppelklick auf LIKE '%\\%'
verdoppeln
\'
und dann LIKE '%\\\'%'
(mit 5 Backslashes) abfragen möchten Erläuterungsquelle Auszug:
Weil MySQL C-Escape-Syntax in Strings verwendet (zum Beispiel "\ n" zu) ein Newline-Zeichen darstellen), müssen Sie das von Ihnen verwendete "\" verdoppeln in LIKE-Strings. Um beispielsweise nach "\ n" zu suchen, geben Sie es als "\ n" an. Um nach "\" zu suchen, spezifizieren Sie es als "\\"; Dies ist, weil die Backslashes werden einmal vom Parser und einmal vom Pattern entfernt Die Übereinstimmung wird hergestellt, wobei ein einzelner umgekehrter Schrägstrich übrig bleibt.
Das Entfernen des LIKE
-Werts funktionierte nicht, als ich es mit MySQL 5.5 probiert habe. Nach ein paar Versuchen war die Arbeit eine Regex (und ich musste dort auch flüchten, plus es in einer Zeichenklasse verstecken). Ich habe es endlich so gemacht:
Das hat nicht funktioniert:
%Vor%Beachten Sie, dass dies auch als PL / SQL markiert ist, also Oracle. Die von Ihnen gepostete Abfrage funktioniert unverändert auf Oracle. Ist das PL / SQL-Tag ein Fehler?
Verwenden Sie die Escape-Funktion.
Tabelle 9.1. Sonderzeichen-Escape-Sequenzen
Escape Sequence Zeichen, das von Sequence dargestellt wird \ 0 Ein ASCII NUL (0x00) Zeichen.
\ 'Ein einzelnes Anführungszeichen (' '").
\ "Ein Anführungszeichen (" ").
\ b Ein Backspace-Zeichen.
\ n Ein Zeilenumbruchzeichen.
\ r Ein Wagenrücklaufzeichen.
\ t Ein Tabulatorzeichen.
\ Z ASCII 26 (Steuerung + Z). Siehe Hinweis nach der Tabelle.
\ Ein umgekehrter Schrägstrich ("\").
\% Ein "%" - Zeichen. Siehe Hinweis nach der Tabelle.
_ Ein "_" -Zeichen. Siehe Hinweis nach der Tabelle.