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:
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: 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:
|
<<: Remote-Entwicklung mit VSCode und SSH
>>: Natives js zur Realisierung der Bild-Upload-Steuerung
a : Gibt die Start- oder Zielposition eines Hyper...
1. Herunterladen und installieren Laden Sie die D...
Vorwort Ich habe vor Kurzem Linux gelernt und dan...
<!--[if IE 6]> Nur IE6 kann erkennen <![e...
Viele Freunde wollten schon immer wissen, wie man...
Es gibt ein auf dem Mac entwickeltes Projekt, das...
Wenn Sie „display:flex, justify-content: space-be...
1. Einleitung Nach dem Start von MySQL wird Buffe...
Redis verwendet das Apline-Image (Alps) von Redis...
RocketMQ ist eine verteilte, warteschlangenbasier...
Vorwort: Die vollständige Kapselung eines Funktio...
Vor Kurzem habe ich gelernt, mit Nginx statische ...
Das Backend verwendet das Framework thinkphp3.2.3...
Tomcat ist weithin als Webcontainer bekannt. Es h...
Zustandshaken Beispiele: importiere { useState } ...