Details zur Verwendung regulärer Ausdrücke in MySQL

Details zur Verwendung regulärer Ausdrücke in MySQL

1. Einleitung

MySQL unterstützt die Übereinstimmung mit regulären Ausdrücken. Bei komplexen Filterbedingungen können Sie die Verwendung regulärer Ausdrücke in Betracht ziehen. Um reguläre Ausdrücke zu verwenden, müssen Sie einige Syntax und Anweisungen für reguläre Ausdrücke beherrschen. Xiaoba empfiehlt eine Lernadresse und Online-Tools. Bevor Sie lernen, wie Sie reguläre Ausdrücke in MySQL verwenden, sollten Sie die Syntax und Anweisungen für reguläre Ausdrücke verstehen.

Website zum Erlernen regulärer Ausdrücke:

www.runoob.com/regexp/reg…

Online-Test für reguläre Ausdrücke:

c.runoob.com/front-end/8…

Beachten Sie, dass die von MySQL unterstützten regulären Ausdrücke nur eine Teilmenge der zahlreichen Implementierungen regulärer Ausdrücke sind. Es wird empfohlen, reguläre Ausdrücke vor ihrer Verwendung zu testen. Beim Testen müssen Sie nicht erst eine Tabelle erstellen und Daten einfügen. Sie können direkt mit select die Formularklausel weglassen und den Ausdruck auf einfache Weise verarbeiten.

Beispielsweise wie folgt:

mysql> select ‚Ich liebe dich, China‘ regexp ‚Ich liebe dich‘;
+------------------------------+
| „Ich liebe dich, China“ regulärer Ausdruck „Ich liebe dich“ |
+------------------------------+
| 1 |
+------------------------------+

mysql> wähle '12306' regulärer Ausdruck '[:Ziffer:]';
+----------------------------+
| '12306' regulärer Ausdruck '[:Ziffer:]' |
+----------------------------+
| 1 |
+----------------------------+

2. Bereiten Sie eine Produkttabelle vor

Bereiten Sie zunächst eine product vor. Die DDL- und Tabellendaten sind wie folgt und können direkt kopiert und verwendet werden.

Namen festlegen utf8mb4;
Setzen Sie FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Tabellenstruktur für Produkt
-- ----------------------------
DROP TABLE, WENN `Produkt` EXISTIERT;
CREATE TABLE `Produkt` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Primärschlüssel',
  `product_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 'Produktname',
  `Preis` Dezimalzahl (10, 2) UNSIGNED NOT NULL COMMENT 'Produktpreis',
  PRIMÄRSCHLÜSSEL (`id`) MIT BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamisch;

-- ----------------------------
-- Aufzeichnungen des Produkts
-- ----------------------------
INSERT INTO `Produkt` VALUES (1, 'Apple iPhone 13 (A2634)', 6799,00);
INSERT INTO `Produkt` VALUES (2, 'HUAWEI P50 Pro', 6488,00);
INSERT INTO `Produkt` VALUES (3, 'MIX4', 4999,00);
INSERT INTO `Produkt` VALUES (4, 'OPPO Find X3', 3999,00);
INSERT INTO `Produkt` VALUES (5, 'vivo X70 Pro+', 5999,00);

Setzen Sie FOREIGN_KEY_CHECKS = 1;

Die Ausgangsdaten sehen folgendermaßen aus:

mysql> wählen Sie * aus Produkt;
+----+-------------------------+---------+
| ID | Produktname | Preis |
+----+-------------------------+---------+
| 1 | Apple iPhone 13 (A2634) | 6799,00 |
| 2 | HUAWEI P50 Pro | 6488,00 |
| 3 | MIX4 | 4999,00 |
| 4 | OPPO Find X3 | 3999,00 |
| 5 | vivo X70 Pro+ | 5999,00 |
+----+-------------------------+---------+

2.1 Anweisungsreihenfolge

Die Funktion regulärer Ausdrücke besteht in der Textübereinstimmung. Durch den Vergleich eines regulären Ausdrucks mit einem Textinhalt können Sie überprüfen, ob der Text den durch den regulären Ausdruck beschriebenen Regeln entspricht. In MySQL werden reguläre Ausdrücke in der where -Klausel verwendet, um die Daten in der select zu filtern.

select * from table_name where regexp 'Ihr regulärer Ausdruck' order by cloumn_name ;

brauchen:

Abfrage der Produkttabelle nach Produkten, deren Produktnamen 3 enthalten

Stellungnahme:

mysql> wähle * vom Produkt, wobei Produktname regulärer Ausdruck „3“ ist;

Ergebnis:

+----+-------------------------+---------+
| ID | Produktname | Preis |
+----+-------------------------+---------+
| 1 | Apple iPhone 13 (A2634) | 6799,00 |
| 4 | OPPO Find X3 | 3999,00 |
+----+-------------------------+---------+

2.2 So unterscheiden Sie Groß- und Kleinbuchstaben

MySQL verwendet reguläre Ausdrücke, die standardmäßig nicht zwischen Groß- und Kleinschreibung unterscheiden, aber in den meisten Fällen müssen wir die englische Groß- und Kleinschreibung explizit berücksichtigen. In diesem Fall können wir das Schlüsselwort binary verwenden.

brauchen:

Durchsuchen Sie die Produkttabelle nach Produkten, deren Produktnamen Huawei enthalten

Stellungnahme:

mysql> wähle * vom Produkt, wobei Produktname regulärer Ausdruck „Huawei“ ist;

Ergebnis:

+----+----------------+---------+
| ID | Produktname | Preis |
+----+----------------+---------+
| 2 | HUAWEI P50 Pro | 6488,00 |
+----+----------------+---------+

Derzeit wird bei den Abfrageergebnissen standardmäßig die Groß-/Kleinschreibung beachtet, sodass sie direkt abgefragt werden können. Wenn die Abfrage die Groß-/Kleinschreibung berücksichtigen soll, müssen wir nach regexp nur das Schlüsselwort binary hinzufügen.

Stellungnahme:

mysql> Auswahl * vom Produkt, wobei Produktname Regexp binär „Huawei“ ist;

Ergebnis:

Leerer Satz (0,00 Sek.)

Da product Produkttabelle das huawei Produkt in Kleinbuchstaben nicht enthält, ist das zurückgegebene Ergebnis Empty set

2.3 Der Unterschied zwischen regulären Ausdrücken und ähnlichen

Ich glaube, einige von Ihnen haben entdeckt, dass die oben implementierten Funktionen tatsächlich mit „like“ erreicht werden können. In vielen Szenarien verwenden wir „like“, um Zeichenfolgen abzugleichen, aber diese Szenarien sind oft sehr einfach. Reguläre Ausdrücke sind ein sehr leistungsfähiges Tool zum Abrufen und Filtern von Text, und die Funktionen, die sie erreichen können, sind viel leistungsfähiger als der „like“-Operator. Kurz gesagt: Alles, was LIKE mit regulären Ausdrücken machen kann, im Grunde nichts, was reguläre Ausdrücke mit LIKE machen können (oder es ist sehr knifflig).

Beispielsweise kann die folgende Anforderung problemlos mithilfe regulärer Ausdrücke implementiert werden, aber ich weiß nicht, wie ich den Like-Operator implementieren soll.

brauchen:

Fragen Sie die Produkttabelle ab und suchen Sie nach den Produktinformationen, bei denen v mindestens einmal im Produktnamen vorkommt.

Stellungnahme:

mysql> Auswahl * vom Produkt, wobei Produktname regulärer Ausdruck „v+“ ist;

Ergebnis:

+----+---------------+---------+
| ID | Produktname | Preis |
+----+---------------+---------+
| 5 | vivo X70 Pro+ | 5999,00 |
+----+---------------+---------+

Hinweis: Der reguläre Ausdruck gleicht wiederholte Metazeichen als ganze aufeinanderfolgende Vorkommen ab. Hier sind einige sich wiederholende Metazeichen. Ich glaube, einige von Ihnen verstehen sie möglicherweise falsch.

Wiederholende Metazeichen

Metazeichen veranschaulichen
* 0 oder mehr Übereinstimmungen, die Auswirkung ist die gleiche wie bei {0,}
+ 1 oder mehr Übereinstimmungen, die Wirkung ist die gleiche wie bei {1,}
? 1 oder 0 Übereinstimmungen, der Effekt ist der gleiche wie bei {0,1}
{N} Gleich n Übereinstimmungen
{N,} Größer als oder gleich n Übereinstimmungen
{n,m} Größer oder gleich n und kleiner oder gleich m, m<255

Das könnte Sie auch interessieren:
  • Eine kurze Erläuterung zu „Group By“ in MySQL
  • Eine kurze Erläuterung der Situationen in MySQL, die zu Indexfehlern führen
  • Das ganz links stehende Übereinstimmungsprinzip des MySQL-Datenbankindex
  • Gemeinsame MySQL-Indexwirksamkeitsbedingungen und Indexungültigkeitsbedingungen
  • Eine kurze Diskussion über die Ungültigkeitserklärung oder implizite Konvertierung von MySQL-Integer- und String-Indizes
  • Installieren Sie MySQL (einschließlich utf8) mit Docker unter Windows/Mac
  • Installation von mysql5.7 und Implementierungsprozess der langfristigen kostenlosen Nutzung von Navicate
  • Detaillierte Erläuterung praktischer Beispiele zur Implementierung einer einfachen Restful-Style-API mit Gin und MySQL
  • Details zur Verwendung von „order by“ in MySQL

<<:  Umfassendes Verständnis von HTML-Formularelementen

>>:  Eine Lösung für einen Fehler in IE6 mit jquery-multiselect

Artikel empfehlen

So installieren und konfigurieren Sie Redis in CentOS7

Einführung Es ist nicht nötig, Redis im Detail vo...

Vollständiger Schrittbericht der TabBar-Komponente der Vue-Kapselung

Inhaltsverzeichnis Umsetzungsideen: Schritt 1: Ko...

Kompilieren Sie CPP-Dateien mit G++ in Ubuntu

Als ich die CPP-Datei zum ersten Mal mit G++ komp...

Das WeChat-Applet realisiert die Funktion zum Hochladen von Bildern

In diesem Artikelbeispiel wird der spezifische Co...

Auszeichnungssprache - Liste

Standardisierte Designlösungen – Auszeichnungsspr...

Allgemeine Schreibbeispiele für MySQL- und Oracle-Batch-Insert-SQL

Inhaltsverzeichnis Zum Beispiel: Allgemeines Schr...

Verwendung der MySQL DATE_FORMAT-Funktion

Angenommen, Taobao animiert die Leute zum Einkauf...

Ein Artikel zum Verständnis der Verwendung von Proxys in JavaScript

Inhaltsverzeichnis Was ist ein Agent Grundkenntni...

Detaillierte Erklärung zur Verwendung von $emit in Vue.js

1. Übergeordnete Komponenten können Props verwend...

Einige Fallstricke beim JavaScript Deep Copy

Vorwort Als ich zuvor zu einem Vorstellungsgesprä...

Lösung für den MySQL-Root-Passwortfehler Nummer 1045

MySQL-Dienst stoppen Klicken Sie in Windows mit d...