Bei der Abfrage nach Schrägstrichen () mit der WHERE-Klausel von MySQL treten zwei unterschiedliche Szenarien auf : bei Verwendung des Gleichheitsoperators (=) und bei Verwendung des LIKE-Operators.
Für den =-Operator gibt es kein zusätzliches Escapezeichen erforderlich. MySQL maskiert es automatisch, um die Integrität des verglichenen Werts aufrechtzuerhalten. In Ihrer Beispielabfrage würde (SELECT * FROM titles where title = 'test') erwartungsgemäß einen Datensatz mit dem Titel 'test' zurückgeben.
Im Gegensatz dazu erfordert der LIKE-Operator das doppelte Escapen von Schrägstrichen (), da er als Sonderzeichen für das Escapen interpretiert wird. Um nach einem Single in einer LIKE-Klausel zu suchen, müssen Sie es stattdessen als angeben. Dies liegt daran, dass MySQL Backslashes zweimal entfernt: einmal beim Parsen und noch einmal beim Mustervergleich.
In Ihrer Beispielabfrage würde (SELECT * FROM titles where title LIKE 'test\') einen Datensatz mit dem Titel 'test' zurückgeben ', da die doppelten Backslashes () das Entfernen während der Verarbeitung ausgleichen.
Bei Bedarf können Sie das Escape-Zeichen für LIKE anpassen, indem Sie mit dem Schlüsselwort ESCAPE. Sie könnten beispielsweise Folgendes angeben:
SELECT * FROM `titles` WHERE title LIKE 'test\' ESCAPE '|'
In diesem Fall dient der senkrechte Strich (|) als Escape-Zeichen anstelle des Standard-Backslashs (). Dadurch können Sie es in Ihren LIKE-Abfragen verwenden, ohne es doppelt maskieren zu müssen.
Das obige ist der detaillierte Inhalt vonWie frage ich nach Schrägstrichen (/) in der WHERE-Klausel von MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!