Heim  >  Artikel  >  Datenbank  >  Nutzungsanalyse der Ersetzung regulärer Ausdrücke mithilfe von Ersetzen und Regexp in MySQL

Nutzungsanalyse der Ersetzung regulärer Ausdrücke mithilfe von Ersetzen und Regexp in MySQL

黄舟
黄舟Original
2017-03-15 17:17:023943Durchsuche

Dieser Artikel stellt hauptsächlich die Verwendung von Ersetzen und Regexp in MySQL für die Ersetzung von regulären Ausdrücken vor. Er analysiert die Verwendungstechniken und die Verwendung von Ersetzen und regulären Ausdrücken in Kombination mit spezifischen Beispielen Verwandte Hinweise finden Freunde in Not unter

Dieser Artikel beschreibt die Verwendung von „replace“ und „regexp“ zum Ersetzen regulärer Ausdrücke in MySQL. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

Heute hat mich ein Freund gefragt, ob ich alle in der Datenbank gefundenen Formate ähnlich wie „./uploads/110100_cityHotel_Beijing Fu Luxury Hotel.jpg“ ändern könnte . Es hat das Format „./uploads/110100cityHotelBeijing Fu Luxury Hotel.jpg“. Ich habe noch nie Daten auf diese Weise verarbeitet, aber ich weiß, dass MySQL Ersetzungen verwenden kann und reguläre Ausdrücke dies auch tun können.

Wie geht das?

Wir brauchen nur eine solche Aussage,

Der Code lautet wie folgt:

update master_data.md_employee set name=replace(name,"_",'') where id = 825;

-- Hinweis Ersetzen (Feldname, „Zu ersetzende Zeichen“, „Zu ersetzende Zeichen“), das ist es.

In MySQL realisieren Ersetzen und Regexp hauptsächlich den Datenaustausch durch SQL-Anweisungen.

Lassen Sie uns zunächst über die spezifische Verwendung von Ersetzen sprechen.

MySQL-Ersetzungsverwendung

1.replace into

Der Code lautet wie folgt:

replace into table (id,name) values('1′,'aa'),('2′,'bb')

Diese Anweisung Die Funktion besteht darin, zwei Datensätze in die Tabelle einzufügen. Wenn die Primärschlüssel-ID 1 oder 2 ist und nicht existiert, ist

äquivalent zu

. Der Code lautet wie folgt:

insert into table (id,name) values('1′,'aa'),('2′,'bb')

Wenn derselbe Wert vorhanden ist, werden keine Daten einfügen

2.replace(<a href="http://www.php.cn/wiki%20/60.html" target="_blank">object<code>replace(<a href="http://www.php.cn/wiki/60.html" target="_blank">object</a>,search,replace),search,replace)

Ersetzen Sie alle Vorkommen von search im Objekt durch replace

Der Code lautet wie folgt:

select replace(&#39;www.jb51.net&#39;,&#39;w&#39;,&#39;Ww&#39;)

Beispiel: Ersetzen Sie aa im Namensfeld der Tabelle durch bb

Der Code lautet wie folgt:

update table set name=replace(name,&#39;aa&#39;,&#39;bb&#39;)

Der von MySQL AndereTyp bereitgestellte Mustervergleich verwendet erweiterte reguläre Ausdrücke.

Wenn Sie auf Übereinstimmungen mit solchen Mustern testen, verwenden Sie die Operatoren REGEXP und NOT REGEXP (oder RLIKE und NOT RLIKE, die Synonyme sind).

Einige Zeichen, die reguläre Ausdrücke erweitern, sind:

· „.“ entspricht jedem einzelnen Zeichen.

· Zeichenklasse „[...]“ entspricht jedem Zeichen in eckigen Klammern. Beispielsweise entspricht „[abc]“ „a“, „b“ oder „c“. Um einen Zeichenbereich zu benennen, verwenden Sie ein „-“. „[a-z]“ entspricht jedem Buchstaben, während „[0-9]“ jeder Zahl entspricht.

· „*“ entspricht null oder mehr Zeichen davor. Beispielsweise entspricht „x*“ einer beliebigen Anzahl von „x“-Zeichen, „[0-9]*“ einer beliebigen Anzahl von Ziffern und „.*“ einer beliebigen Anzahl beliebiger Zeichen.

Das Muster stimmt überein, wenn das REGEXP-Muster irgendwo im getesteten Wert übereinstimmt (dies unterscheidet sich vom LIKE-Mustervergleich, der nur mit dem gesamten Wert übereinstimmt).

Um ein Muster so zu positionieren, dass es mit dem Anfang oder Ende des getesteten Werts übereinstimmen muss, verwenden Sie „^“ am Anfang des Musters oder „$“ am Ende des Musters Muster.

Um zu veranschaulichen, wie erweiterte reguläre Ausdrücke funktionieren, schreiben wir die oben gezeigte LIKE -Abfrage mit REGEXP um:

1. Um herauszufinden, was mit „ beginnt d Für Namen, die mit „ beginnen, verwenden Sie „^“, um den Namensanfang abzugleichen:

Der Code lautet wie folgt:

SELECT * FROM master_data.md_employee WHERE name REGEXP &#39;^d&#39;;

Eine solche Ergebnismenge ist kein Fall sensibel, wenn Sie erzwingen möchten. Um beim REGEXP-Vergleich die Groß-/Kleinschreibung zu berücksichtigen, verwenden Sie das Schlüsselwort BINARY, um eine der -Zeichenfolgen in eine Binärzeichenfolge umzuwandeln. Diese Abfrage entspricht nur dem ersten Buchstaben des Namens, dem Kleinbuchstaben „d“.

Der Code lautet wie folgt:

SELECT * FROM master_data.md_employee WHERE name REGEXP BINARY&#39;^d&#39;;

Um Namen zu finden, die mit „love“ enden, verwenden Sie „$“, um das Ende des Namens zu finden:

Der Code lautet wie folgt:

SELECT id,name FROM master_data.md_employee WHERE name REGEXP &#39;love$&#39;;

Um Namen zu finden, die ein „w“ enthalten, verwenden Sie die folgende Abfrage:

Der Code lautet wie folgt:

SELECT id,name FROM master_data.md_employee WHERE name REGEXP &#39;w&#39;;

Da ein regulärer Ausdruck, der an einer beliebigen Stelle in einem Wert auftritt, der mit dem Muster übereinstimmt, die Notwendigkeit beseitigt, in der vorherigen Abfrage Platzhalter auf beiden Seiten des Musters zu platzieren, damit es mit dem gesamten Wert übereinstimmt, als ob Sie verwendeten ein SQL-Muster.

Um Namen zu finden, die genau 5 Zeichen enthalten, verwenden Sie „^“ und „$“, um den Anfang und das Ende des Namens abzugleichen, sowie 5 „.“-Instanzen dazwischen:

Der Code lautet wie folgt:

SELECT id,name FROM master_data.md_employee WHERE name REGEXP &#39;^.....$&#39;;

你也可以使用“{n}”“重复n次”操作符重写前面的查询:

代码如下:

SELECT id,name FROM master_data.md_employee WHERE name REGEXP &#39;^.{5}$&#39;;

这些知识一些简单的mysql的replace和regexp的用法,对于深入的学习,我们会在之后的文章会将具体的例子以及用法写出

Das obige ist der detaillierte Inhalt vonNutzungsanalyse der Ersetzung regulärer Ausdrücke mithilfe von Ersetzen und Regexp in MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn