Dieser Artikel veranschaulicht anhand von Beispielen die Verwendung von „replace“ und „regexp“ zum Ersetzen regulärer Ausdrücke in MySQL. Teilen Sie uns die Einzelheiten zu Ihrer Information mit: Heute hat mich ein Freund gefragt, wie man die in der Datenbank gefundenen Formate ähnlich „./uploads/110100_cityHotel_北京富豪豪酒店.jpg“ in „./uploads/110100cityHotel北京富豪豪酒店.jpg“ ändert. Ich habe Daten noch nie auf diese Weise verarbeitet, weiß aber, dass MySQL dies mithilfe von Ersetzen kann und dass dies auch mit regulären Ausdrücken möglich ist. Wie geht das? Wir brauchen nur einen Satz wie diesen:
- Beachten Sie „replace(Feldname, „zu ersetzende Zeichen“, „zu ersetzende Zeichen“)“, das ist alles. In MySQL werden „replace“ und „regexp“ hauptsächlich zum Ersetzen von Daten durch SQL-Anweisungen verwendet. Lassen Sie uns zunächst über die spezifische Verwendung von „Ersetzen“ sprechen. MySQL-Ersetzungsnutzung 1. Kopieren Sie den Code wie folgt: Ersetze in Tabelle (ID, Name) Werte('1', 'aa'),('2', 'bb') Der Zweck dieser Anweisung besteht darin, zwei Datensätze in die Tabelle einzufügen. Wenn die Primärschlüssel-ID 1 oder 2 ist, existiert sie nicht ist gleichbedeutend mit in Tabelle einfügen (ID, Name) Werte('1', 'aa'),('2', 'bb') Wenn der gleiche Wert vorhanden ist, werden die Daten nicht eingefügt. 2. Ersetzen Sie alle Vorkommen von Suche im Objekt durch Ersetzen.
—>WwWwWw.jb51.net Beispiel: Ersetzen Sie aa im Namensfeld der Tabelle table durch bb
Eine andere von MySQL bereitgestellte Art der Musterübereinstimmung ist die Verwendung erweiterter regulärer Ausdrücke. Wenn Sie nach einer Übereinstimmung mit solchen Mustern suchen, verwenden Sie die Operatoren REGEXP und NOT REGEXP (oder RLIKE und NOT RLIKE, die Synonyme sind). Einige Zeichen für erweiterte reguläre Ausdrücke sind: · „.“ steht für jedes einzelne Zeichen. · Die Zeichenklasse "[...]" passt zu jedem Zeichen innerhalb der eckigen Klammern. Beispielsweise entspricht „[abc]“ „a“, „b“ oder „c“. Um einen Zeichenbereich zu benennen, verwenden Sie ein "-". „[az]“ entspricht jedem Buchstaben und „[0-9]“ entspricht jeder Ziffer. · „*“ entspricht keinem oder mehreren der vorangehenden Zeichen. Beispielsweise entspricht „x*“ einer beliebigen Anzahl von „x“-Zeichen, „[0-9]*“ entspricht einer beliebigen Anzahl von Ziffern und „.*“ entspricht einer beliebigen Anzahl von beliebigen Zeichen. Wenn das REGEXP-Muster irgendwo im getesteten Wert übereinstimmt, stimmt das Muster überein (dies unterscheidet sich vom LIKE-Mustervergleich, der nur übereinstimmt, wenn er mit dem gesamten Wert übereinstimmt). Um ein Muster so zu positionieren, dass es mit dem Anfang oder Ende des getesteten Werts übereinstimmen muss, verwenden Sie „^“ am Anfang des Musters oder „$“ am Ende des Musters. Um zu veranschaulichen, wie erweiterte reguläre Ausdrücke funktionieren, sehen Sie hier die oben gezeigte LIKE-Abfrage, die mit REGEXP umgeschrieben wurde: 1. Um Namen zu finden, die mit „d“ beginnen, verwenden Sie „^“, um den Anfang des Namens abzugleichen:
Bei solchen Ergebnismengen wird die Groß-/Kleinschreibung nicht beachtet. Wenn Sie beim REGEXP-Vergleich die Groß-/Kleinschreibung beachtet haben möchten, verwenden Sie das Schlüsselwort BINARY, um aus einer der Zeichenfolgen eine Binärzeichenfolge zu machen. Diese Abfrage stimmt nur mit Namen überein, die mit einem kleinen „d“ beginnen.
Um Namen zu finden, die mit „love“ enden, verwenden Sie „$“, um das Ende des Namens abzugleichen:
Um Namen zu finden, die ein „w“ enthalten, verwenden Sie die folgende Abfrage:
Da ein reguläres Ausdrucksmuster übereinstimmt, wenn es irgendwo in einem Wert vorkommt, müssen Sie in der vorherigen Abfrage nicht auf beiden Seiten des Musters ein Platzhalterzeichen einfügen, damit es mit dem gesamten Wert übereinstimmt, wie Sie es bei Verwendung eines SQL-Musters tun würden. Um Namen zu finden, die genau aus 5 Zeichen bestehen, verwenden Sie "^" und "$", um den Anfang und das Ende des Namens abzugleichen, und 5 Instanzen von "." dazwischen:
Sie können die vorherige Abfrage auch mit dem Operator „{n}“ (n-mal wiederholen) neu schreiben:
Dies ist eine einfache Verwendung von MySQL-Ersetzungen und regulären Ausdrücken. Für ein vertieftes Lernen werden wir in den folgenden Artikeln spezifische Beispiele und Verwendungen beschreiben. PS: Hier sind zwei sehr praktische Tools für reguläre Ausdrücke zu Ihrer Information: Online-Testtool für reguläre Ausdrücke in JavaScript: Online-Tool zur Generierung regulärer Ausdrücke: Leser, die an weiteren MySQL-bezogenen Inhalten interessiert sind, können sich die folgenden Themen ansehen: „Zusammenfassung der allgemeinen MySQL-Funktionen“, „Zusammenfassung der Kenntnisse zu MySQL-Protokollvorgängen“, „Zusammenfassung der Kenntnisse zu MySQL-Transaktionsvorgängen“, „Zusammenfassung der Kenntnisse zu gespeicherten MySQL-Prozeduren“ und „Zusammenfassung der Kenntnisse zu MySQL-Datenbanksperren“. Ich hoffe, dass dieser Artikel für jedermann beim Entwurf einer MySQL-Datenbank hilfreich ist. Das könnte Sie auch interessieren:
|
<<: 6 Möglichkeiten, die von Linux-Prozessen belegten Portnummern anzuzeigen
Inhaltsverzeichnis Docker-System df Docker-System...
Anwendungsszenarien: Eine der neuen Anforderungen...
Dieser Artikel beschreibt die häufig verwendeten ...
Die Composition API implementiert Schritte zur Wi...
Problembeschreibung Als ich kürzlich ein Springbo...
Nutzungsumgebung Geben Sie im cmd-Modus mysql --v...
Ich habe heute eine neue Version von MySQL (8.0.2...
In einem aktuellen Projekt wollte ich Text vertik...
Inhaltsverzeichnis 1. Was ist Dockerfile? 2. Anal...
Inhaltsverzeichnis 1. Schnelles Verständnis von K...
Inhaltsverzeichnis Frage 1. Installieren Sie webp...
1. Grundlinien 2. Spezialeffekte (die Effekte sin...
1. Docker-Installation und -Einstellungen #Instal...
MySQL ist ein relationales Datenbankverwaltungssy...
Bedürfnisse entdecken Wenn nur ein Teil eines Ber...