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

HTML-Elemente (Tags) und ihre Verwendung

a : Gibt die Start- oder Zielposition eines Hyper...

Detaillierte Installation und Konfiguration von MySql auf dem Mac

1. Herunterladen und installieren Laden Sie die D...

Bedingte Kommentare zur Bestimmung des Browsers (IE-Reihe)

<!--[if IE 6]> Nur IE6 kann erkennen <![e...

So packen Sie das Projekt per Idee in Docker

Viele Freunde wollten schon immer wissen, wie man...

Detaillierte Erklärung des FreeList-Mechanismus von MySQL

1. Einleitung Nach dem Start von MySQL wird Buffe...

Docker startet Redis und legt das Passwort fest

Redis verwendet das Apline-Image (Alps) von Redis...

Docker-Installations-Tutorial zu RocketMQ (am ausführlichsten)

RocketMQ ist eine verteilte, warteschlangenbasier...

Kapseln Sie die Navigationsleistenkomponente mit Vue

Vorwort: Die vollständige Kapselung eines Funktio...

So konfigurieren Sie pseudostatisches und clientadaptives Nginx

Das Backend verwendet das Framework thinkphp3.2.3...

Eine kurze Einführung in die Gesamtstruktur von Tomcat

Tomcat ist weithin als Webcontainer bekannt. Es h...

Einführungstutorial zu React Hooks

Zustandshaken Beispiele: importiere { useState } ...