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

JavaScript zum Erzielen eines einfachen Drag-Effekts

In diesem Artikel wird der spezifische JavaScript...

So stellen Sie Tencent Cloud Server von Grund auf bereit

Da dies mein erster Beitrag ist, weisen Sie mich ...

Tutorial zum Ändern des Root-Passworts in MySQL 5.7

Versionsupdate, das Passwortfeld im Originalbenut...

Implementierung einer geplanten Sicherung in Mysql5.7

1. Suchen Sie mysqldump.exe im MySQL-Installation...

Tutorial zur Installation von MYSQL8.X auf Centos

MySQL-Installation (4, 5, 6 können weggelassen we...

Details zur Verwendung des Vue-Slots

Inhaltsverzeichnis 1. Warum Slots verwenden? 1.1 ...

Zehn wichtige Fragen zum Erlernen der Grundlagen von Javascript

Inhaltsverzeichnis 1. Was ist Javascript? 2. Was ...

Hinweise zum Systemaufruf des Linux-Kernel-Gerätetreibers

/**************************** * Systemaufruf*****...

Was macht der legendäre VUE-Syntax-Sugar?

Inhaltsverzeichnis 1. Was ist syntaktischer Zucke...