Beispielanalyse der Suchfunktion von MySQL-regulären Ausdrücken (regexp und rlike)

Beispielanalyse der Suchfunktion von MySQL-regulären Ausdrücken (regexp und rlike)

Dieser Artikel veranschaulicht anhand von Beispielen die Suchfunktion von MySQL-regulären Ausdrücken (regexp und rlike). Teilen Sie uns die Einzelheiten zu Ihrer Information mit:

Wir wissen, dass reguläre Ausdrücke spezielle Zeichenfolgen sind, die Suchmuster beschreiben. Es ist ein leistungsstarkes Tool, das uns eine prägnante und flexible Methode zum Erkennen musterbasierter Textzeichen wie Buchstaben, Wörter usw. bietet. Beispielsweise können wir reguläre Ausdrücke verwenden, um nach E-Mails, IP-Adressen, Telefonnummern, Sozialversicherungsnummern oder allem anderen mit einem bestimmten Muster zu suchen. Reguläre Ausdrücke haben ihre eigene Syntax, die von einem regulären Ausdrucksprozessor interpretiert werden kann. Reguläre Ausdrücke werden auf den meisten Plattformen häufig verwendet, von Programmiersprachen bis hin zu Datenbanken (einschließlich MySQL). Der Vorteil der Verwendung regulärer Ausdrücke besteht darin, dass Sie nicht auf die Suche nach Zeichenfolgen basierend auf festen Mustern mit Prozentzeichen (%) und Unterstrichen (_) im Like-Operator beschränkt sind. Bei regulären Ausdrücken stehen mehr Metazeichen zum Erstellen flexibler Muster zur Verfügung.

Wollen wir angesichts dessen das Terrain sondieren? ? ? Ohne weitere Umschweife können Sie mit MySQL den REGEXP-Operator verwenden, um Muster in SQL-Anweisungen abzugleichen. Sehen wir uns also das Syntaxformat der regulären Ausdrücke in der Where-Klausel an:

WÄHLEN 
 Spaltenliste
AUS
 Tabellenname
WO
 string_column REGEXP-Muster;

Diese SQL-Anweisung gleicht string_column mit pattern ab. Wenn der Wert in string_column mit pattern übereinstimmt, gibt der Ausdruck in der WHERE-Klausel 1 zurück, andernfalls 0. Wenn string_column oder pattern NULL ist, ist das Ergebnis NULL. Zusätzlich zum REGEXP-Operator können Sie den RLIKE-Operator verwenden, der ein Synonym für den REGEXP-Operator ist. Die negierte Form des REGEXP-Operators ist NOT REGEXP.

Sehen wir uns nun ein Beispiel an. Angenommen, wir möchten Produkte finden, deren Namen mit dem Buchstaben A, B oder C beginnen. Sie können reguläre Ausdrücke in Select-Anweisungen wie folgt verwenden:

WÄHLEN 
 Produktname
AUS
 Produkte
WO
 Produktname REGEXP '^(A|B|C)'
ORDER BY Produktname;

Führen Sie die obige Abfrageanweisung aus und erhalten Sie die folgenden Ergebnisse:

+--------------------------------+
| Produktname |
+--------------------------------+
| America West Airlines B757-200 |
| American Airlines: B767-300 |
| American Airlines: MD-11S |
| ATA: B757-300 |
| Boeing X-32A JSF |
| Sammelbarer Holzzug |
| Corsair F4U (Vogelkäfig) |
+--------------------------------+
7 Reihen im Set

Dieses Muster ermöglicht die Suche nach Produkten, deren Namen mit A, B oder C beginnen, wobei das Zeichen ^ eine Übereinstimmung vom Anfang der Zeichenfolge an bedeutet und das Endzeichen | nach Alternativen sucht, wenn keine Übereinstimmung möglich ist. Die folgende Tabelle beschreibt einige häufig verwendete Metazeichen und Konstrukte in regulären Ausdrücken:

Metazeichen Verhalten
^ Entspricht einer Position am Anfang des Suchbegriffs
$ Entspricht dem Ende der Suchzeichenfolge
. Stimmt mit jedem einzelnen Zeichen überein
[…] Entspricht jedem Zeichen innerhalb der eckigen Klammern
[^…] Stimmt mit jedem Zeichen überein, das nicht in den eckigen Klammern angegeben ist.
Entspricht dem Muster p1 oder p2
* Stimmt null oder mehrmals mit dem vorhergehenden Zeichen überein.
+ Entspricht dem vorherigen Zeichen ein- oder mehrmals
{N} Entspricht n Instanzen der ersten paar Zeichen
{m,n} Übereinstimmungen von m bis n Vorkommen des vorherigen Zeichens

Suchen wir nach Produkten, deren Namen mit a beginnen. Wir verwenden "^" am Anfang des Namens, um Übereinstimmungen zu erzielen, wie in der folgenden Abfrage gezeigt:

WÄHLEN 
 Produktname
AUS
 Produkte
WO
 Produktname REGEXP '^a';

Führen Sie die obige Abfrageanweisung aus und erhalten Sie die folgenden Ergebnisse:

+--------------------------------+
| Produktname |
+--------------------------------+
| American Airlines: B767-300 |
| America West Airlines B757-200 |
| ATA: B757-300 |
| American Airlines: MD-11S |
+--------------------------------+
4 Reihen im Set

Wenn der REGEXP-Operator die Zeichenfolgen unter Berücksichtigung der Groß- und Kleinschreibung vergleichen soll, können Sie den BINARY-Operator verwenden, um die Zeichenfolge in eine Binärzeichenfolge zu konvertieren. Weil MySQL Binärbytes Byte für Byte und nicht Zeichen für Zeichen vergleicht. Dadurch kann bei Zeichenfolgenvergleichen die Groß-/Kleinschreibung beachtet werden. Die folgende Anweisung beispielsweise stimmt nur mit Produktnamen überein, die mit einem großen „C“ beginnen:

WÄHLEN 
 Produktname
AUS
 Produkte
WO
 Produktname REGEXP BINARY '^C';

Führen Sie die obige Abfrageanweisung aus und erhalten Sie die folgenden Ergebnisse:

+--------------------------+
| Produktname |
+--------------------------+
| Sammelbarer Holzzug |
| Corsair F4U (Vogelkäfig) |
+--------------------------+
2 Reihen im Set

Um Produktionen zu finden, die mit f enden, können wir „$f“ verwenden, um das Ende der Zeichenfolge abzugleichen:

WÄHLEN 
 Produktname
AUS
 Produkte
WO
 Produktname REGEXP 'f$';

Führen Sie die obige Abfrageanweisung aus und erhalten Sie die folgenden Ergebnisse:

+------------------+
| Produktname |
+------------------+
| Boeing X-32A JSF |
+------------------+
1 Reihe im Set

Um Produkte zu finden, deren Namen „Ford“ enthalten, verwenden Sie die folgende Abfrage:

WÄHLEN 
 Produktname
AUS
 Produkte
WO
 Produktname REGEXP 'ford';

Führen Sie die obige Abfrageanweisung aus und erhalten Sie die folgenden Ergebnisse:

+----------------------------------+
| Produktname |
+----------------------------------+
| 1968 Ford Mustang |
| 1969 Ford Falcon |
| Ford Pickup-Truck von 1940 |
| Ford Town Car von 1911 |
| 1932 Ford J-Coupé Modell A |
| 1926 Ford Feuerwehrauto |
| 1913 Ford Modell T Speedster |
| 1934 Ford V8 Coupé |
| 1903 Ford Modell A |
| 1976 Ford Gran Torino |
| Ford-Lastwagen aus den 40ern |
| 1957 Ford Thunderbird |
| 1912 Ford Modell T Lieferwagen |
| 1940 Ford Lieferlimousine |
| 1928 Ford Phaeton Deluxe |
+----------------------------------+
15 Reihen im Set

Um Produkte zu finden, deren Namen nur 10 Zeichen enthalten, können Sie „^“ und „$“ verwenden, um den Anfang und das Ende des Produktnamens abzugleichen, und jedes Zeichen {10} Mal wiederholen, wie in der folgenden Abfrage:

WÄHLEN 
 Produktname
AUS
 Produkte
WO
 Produktname REGEXP '^.{10}$';

Führen Sie die obige Abfrageanweisung aus und erhalten Sie die folgenden Ergebnisse:

+-------------+
| Produktname |
+-------------+
|HMS Bounty |
| Pont Yacht |
+-------------+
2 Reihen im Set

Tatsächlich ist diese Abfragemethode festgelegt, und die Variablen sind die regulären Ausdrücke, die Sie schreiben. Die konkrete Verwendung hängt also von den Fähigkeiten jedes Einzelnen ab.

Okay, das ist alles für heute.

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:
http://tools.jb51.net/regex/javascript

Online-Tool zur Generierung regulärer Ausdrücke:
http://tools.jb51.net/regex/create_reg

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:
  • Gewöhnliche Gespräche über die Verwendung von MYSQL Pattern Matching REGEXP und ähnliches
  • Analyse der Verwendung von „replace“ und „regexp“ zum Ersetzen regulärer Ausdrücke in MySQL
  • Detaillierte Einführung in die Verwendung von MySQL-Fuzzy-Abfragen LIKE und REGEXP
  • Vollständige Anleitung zur Verwendung von REGEXP-regulären Ausdrücken in MySQL
  • Zusammenfassung der MySQL-Fuzzy-Abfragen „Like“ und „Regexp“
  • Verwendung von Ersetzen und regulären Ausdrücken in der MySQL-Datenbank
  • Zusammenfassung klassischer Beispiele für MySQL-Abfrageoperationen mit regulären Ausdrücken
  • Detaillierte Erklärung der MySQL-Syntax, Sonderzeichen und regulären Ausdrücke
  • So verwenden Sie reguläre Ausdrucksabfragen in MySql
  • MySQL-Abfrage mit regulären Ausdrücken enthält Datensätze, die keine Ziffern oder Zeichen sind
  • Kurze Einführung in MySQL-reguläre Ausdrücke
  • MySQL verwendet reguläre Ausdrücke zum Filtern von Daten
  • So verwenden Sie reguläre Ausdrucksabfragen in MySQL
  • Tutorial zu regulären Ausdrücken in MySQL
  • Offizielles MySql-Handbuch, Studiennotizen 2 MySql-Fuzzy-Abfrage und regulärer Ausdruck
  • Analyse der Implementierung von Coolcode zu SyntaxHighlighter und MySQL-regulären Ausdrücken
  • MySQL-Zeichenfolgenmustervergleich, erweiterter Mustervergleich mit regulären Ausdrücken
  • MySQL regulärer Ausdruck LIKE Platzhalter
  • Beschreibung der Verwendung regulärer Ausdrücke in MySql
  • So verwenden Sie reguläre Ausdrücke, um Inhalte in der Datenbank in MySQL zu ersetzen
  • Allgemeine Verwendung von regulären Ausdrücken in MySQL

<<:  Remote-Entwicklung mit VSCode und SSH

>>:  Natives js zur Realisierung der Bild-Upload-Steuerung

Artikel empfehlen

So verbinden Sie eine virtuelle Linux-Maschine mit WLAN

Im Leben ist das Internet allgegenwärtig. Wir kön...

Implementierung eines schwebenden Werbestreifens in HTML und CSS

1.html Teil Code kopieren Der Code lautet wie folg...

JavaScript zum Anzeigen und Ausblenden von Bildern

JavaScript zeigt und verbirgt Bilder. Zu Ihrer In...

Super detaillierter GCC-Upgrade-Prozess unter Linux

Inhaltsverzeichnis Vorwort 1. Aktuelle gcc-Versio...

MySQL InnoDB MRR-Optimierungshandbuch

Vorwort MRR ist die Abkürzung für Multi-Range Rea...

MySQL ruft die aktuelle Datums- und Uhrzeitfunktion ab

Holen Sie sich das aktuelle Datum + die aktuelle ...

CSS transparenter Rahmen Hintergrund-Clip-Magie

In diesem Artikel wird hauptsächlich die wunderba...

33 Eis- und Schnee-Schriftarten zum Download empfohlen (privat und kommerziell)

01 Winterflocken (nur einzeln) 02 Snowtop Caps (k...

Mehrere Methoden zum Ausführen von SQL-Dateien unter der MySQL-Befehlszeile

Inhaltsverzeichnis Die erste Methode: Wenn die My...

Funktionsweise von SQL-SELECT-Datenbankabfragen

Obwohl wir keine professionellen DBAs sind, könne...

MySQL berechnet die Anzahl der Tage, Monate und Jahre zwischen zwei Daten

Die in MySQL integrierte Datumsfunktion TIMESTAMP...

Implementierung der MVCC-Mehrversions-Parallelitätskontrolle von MySQL

1 Was ist MVCC Der vollständige Name von MVCC lau...

JavaScript implementiert Tab-Leisten-Umschalteffekte

Hier ist ein Fall, den Frontend-Entwickler kennen...