Heim Datenbank MySQL-Tutorial MYSQL入门学习之二:使用正则表达式搜索_MySQL

MYSQL入门学习之二:使用正则表达式搜索_MySQL

Jun 01, 2016 pm 01:38 PM
表达式

正则表达式

bitsCN.com


MYSQL入门学习之二:使用正则表达式搜索

 

一、正则表达式介绍

正则表达式是用来匹配文本的特殊的串(字符集合)。

 

二、使用MySQL正则表达式

 

1、MySQL仅仅支持多数正则表达式实现的一个很小的子集。

 

2、LIKE匹配整个列值;而REGEXP匹配列值的子串,如果被匹配的文本在列值中出现,REGEXP将会找到它,相应的行将被返回。看下面的例子:

[sql] 

mysql>select username from v9_admin where username like 'space';  

Emptyset (0.00 sec)  

   

mysql>select username from v9_admin where username REGEXP 'space';  

+-----------+  

|username  |  

+-----------+  

|warmspace |  

+-----------+  

1 rowin set (0.02 sec)  

3、默认MySQL中的正则表达式匹配不区分大小写,可使用BINARY关键字区分大小写,如

 

[sql] 

mysql>select username from v9_admin  

    -> where username REGEXP BINARY'SPACCE';  

Emptyset (0.04 sec)  

4、进行OR匹配:为搜索两个串之一,使用|,如下所示:

 

[sql] 

mysql>select roleid from v9_admin_role  

    -> where roleid REGEXP '1|3';  

+--------+  

|roleid |  

+--------+  

|      1 |  

|      3 |  

+--------+  

2 rowsin set (0.00 sec)  

5、匹配几个字符之一:匹配任何单一字符。如下所示:

 

[sql] 

mysql>select name from v9_collection_node  

    -> where name REGEXP '005-[123]';  

+-----------------+  

|name            |  

+-----------------+  

|101-02-01-005-2 |  

|101-02-01-005-1 |  

|101-02-01-005-3 |  

+-----------------+  

3 rowsin set (0.00 sec)  

正如所见,[]是另一种形式的OR语句。'005-[123]'与’005-[1|2|3]’是等价的。

 

匹配除给定字符外的字符:

 

[sql] 

mysql>select name from v9_collection_node  

    -> where name REGEXP '005-[^123]';  

+-------------------+  

|name              |  

+-------------------+  

|101-02-01-005-4.2 |  

|101-02-01-005-4   |  

|101-02-01-005-5   |  

+-------------------+  

3 rowsin set (0.00 sec)  

6、可使用-来定义一个范围。如[1-9],[a-b]。

 

[sql] 

mysql>select name from v9_collection_node  

    -> where name REGEXP '005-[1-3]';  

+-----------------+  

|name            |  

+-----------------+  

|101-02-01-005-2 |  

|101-02-01-005-1 |  

|101-02-01-005-3 |  

+-----------------+  

3 rowsin set (0.00 sec)  

7、为了匹配特殊字符,必须用//为前导,例如//-,//.等。这种处理即转义(escaping)。

 

多数正则表达式实现使用单个反斜杠转义特殊字符,但MYSQL要求两个(MYSQL自己解释一个,正则表达式库解释另一个)。

 

//也用来引用元字符(具有特殊含义的字符),如下表:

 

MYSQL入门学习之二:使用正则表达式搜索_MySQL

 

8、为了更方便工作,可以使用预定义的字符集,称为字符类(character class)。

 

[sql] 

mysql> select name fromv9_collection_node  

   -> where name REGEXP '[[:digit:]]';  

+-------------------+  

| name              |  

+-------------------+  

| 101-10-01-002-1   |  

| 101-02-01-005-4.2 |  

| 101-02-01-005-2   |  

| 101-02-01-005-1   |  

| 101-02-01-005-3   |  

| 101-02-01-005-4   |  

| 101-02-01-005-5   |  

| 101-10-01-002-2   |  

| 101-11-04-001-1   |  

+-------------------+  

9 rowsin set (0.00 sec)  


MYSQL入门学习之二:使用正则表达式搜索_MySQL
 

9、使用正则表达式重复元字符匹配多个实例:

 

[sql] 

mysql> select name fromv9_collection_node  

   -> where name REGEXP '1{2}';  

+-----------------+  

| name            |  

+-----------------+  

| 101-11-04-001-1 |  

+-----------------+  

1 rowin set (0.00 sec)  


MYSQL入门学习之二:使用正则表达式搜索_MySQL
 

10、定位符(为了匹配特定位置的文本):

 

[sql] 

mysql> select name from v9_collection_node  

    -> where name REGEXP '2$';  

+-------------------+  

| name              |  

+-------------------+  

| 101-02-01-005-4.2 |  

| 101-02-01-005-2   |  

| 101-10-01-002-2   |  

+-------------------+  

3 rows in set (0.00 sec)  


MYSQL入门学习之二:使用正则表达式搜索_MySQL
 

11、使REGEXP起类似LIKE的作用,它们的区别在于LIKE匹配整个串而REGEXP匹配子串。利用定位符,通过用^开始每个表达式,用$结束每个表达式。

 

12、简单的正则表达式测试:可以在不使用数据库表的情况下用SELECT来测试正则表达式。REGEXP检查总是返回0或1(匹配)。

 

[sql] 

mysql> select 'hello' REGEXP'[0-9]';  

+------------------------+  

| 'hello' REGEXP '[0-9]' |  

+------------------------+  

|                      0 |  

+------------------------+  

1 row in set (0.00 sec)  

 

bitsCN.com
Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie behebt man Fehler in der Python-Ausdruckssyntax? Wie behebt man Fehler in der Python-Ausdruckssyntax? Jun 24, 2023 pm 05:04 PM

Python ist als High-Level-Programmiersprache einfach zu erlernen und zu verwenden. Sobald Sie ein Python-Programm schreiben müssen, werden Sie unweigerlich auf Syntaxfehler stoßen, und Fehler in der Ausdruckssyntax kommen häufig vor. In diesem Artikel besprechen wir, wie Fehler in der Ausdruckssyntax in Python behoben werden. Fehler in der Ausdruckssyntax gehören zu den häufigsten Fehlern in Python und werden normalerweise durch eine falsche Verwendung der Syntax oder das Fehlen notwendiger Komponenten verursacht. In Python bestehen Ausdrücke normalerweise aus Zahlen, Zeichenfolgen, Variablen und Operatoren. am häufigsten

In C und C++ wird Komma zum Trennen von Ausdrücken oder Anweisungen verwendet In C und C++ wird Komma zum Trennen von Ausdrücken oder Anweisungen verwendet Sep 09, 2023 pm 05:33 PM

In C oder C++ hat das Komma "," unterschiedliche Verwendungszwecke. Hier erfahren wir, wie man sie nutzt. Kommas als Operatoren. Der Kommaoperator ist ein binärer Operator, der den ersten Operanden auswertet, das Ergebnis verwirft, dann den zweiten Operanden auswertet und den Wert zurückgibt. Der Kommaoperator hat in C oder C++ die niedrigste Priorität. Beispiel #include<stdio.h>intmain(){ intx=(50,60); inty=(func1(),func2());} Hier wird x 60 zugewiesen. Für die nächste Anweisung wird func1( zuerst ausgeführt

Einführung in Exponentialfunktionsausdrücke in der Sprache C Einführung in Exponentialfunktionsausdrücke in der Sprache C Feb 18, 2024 pm 01:11 PM

Einführung in das Schreiben von Exponentialfunktionsausdrücken in der C-Sprache und Codebeispiele. Was ist eine Exponentialfunktion? Die Exponentialfunktion ist ein häufiger Funktionstyp in der Mathematik. Sie kann in der Form f(x)=a^x ausgedrückt werden a ist die Basis und x ist der Exponent. Exponentialfunktionen werden hauptsächlich verwendet, um exponentielles Wachstum oder exponentiellen Abfall zu beschreiben. Codebeispiel einer Exponentialfunktion In der Sprache C können wir die Funktion pow() in der Mathematikbibliothek verwenden, um die Exponentialfunktion zu berechnen. Das Folgende ist ein Beispielprogramm: #include

Lambda-Ausdruck in Java Lambda-Ausdruck in Java Jun 09, 2023 am 10:17 AM

Lambda-Ausdrücke in Java Mit der Veröffentlichung von Java 8 sind Lambda-Ausdrücke zu einem der am meisten besorgniserregenden und diskutierten Themen unter Java-Entwicklern geworden. Lambda-Ausdrücke können die mühsamen Schreibmethoden von Java-Programmierern vereinfachen und außerdem die Lesbarkeit und Wartbarkeit von Programmen verbessern. In diesem Artikel werden wir uns eingehend mit Lambda-Ausdrücken in Java befassen und wie sie ein einfacheres und intuitiveres Programmiererlebnis in Java-Code ermöglichen.

Durchlaufen Sie eine Sammlung mithilfe von Lambda-Ausdrücken Durchlaufen Sie eine Sammlung mithilfe von Lambda-Ausdrücken Feb 19, 2024 pm 07:32 PM

Ein Lambda-Ausdruck ist eine anonyme Funktion, die bequem zum Durchlaufen einer Sammlung verwendet werden kann. In diesem Artikel stellen wir vor, wie man Lambda-Ausdrücke zum Durchlaufen von Sammlungen verwendet, und stellen spezifische Codebeispiele bereit. In Python lautet das Syntaxformat eines Lambda-Ausdrucks wie folgt: Lambda-Parameterliste: Die Parameterliste eines Ausdrucks-Lambda-Ausdrucks kann einen oder mehrere durch Kommas getrennte Parameter enthalten. Der Ausdruck ist der Rückgabewert der Lambda-Funktion. Schauen wir uns unten ein einfaches Beispiel an

Java-Lambda-Ausdruck in der Praxis: Die Geheimnisse der funktionalen Programmierung mit Code entschlüsseln Java-Lambda-Ausdruck in der Praxis: Die Geheimnisse der funktionalen Programmierung mit Code entschlüsseln Feb 26, 2024 am 10:25 AM

Der Lambda-Ausdruck ist, wie der Name schon sagt, eine anonyme Funktion mit dem Pfeilsymbol (->) als Kern. Es ermöglicht Ihnen, Codeblöcke als Argumente an andere Methoden zu übergeben oder sie zur späteren Verwendung in Variablen zu speichern. Die Syntax des Lambda-Ausdrucks ist prägnant und leicht zu verstehen und eignet sich sehr gut für die Verarbeitung von Datenflüssen und parallelem Rechnen. 1. Die grundlegende Syntax des Lambda-Ausdrucks Die grundlegende Syntax des Lambda-Ausdrucks lautet wie folgt: (Parameterliste) -> {Codeblock} Unter diesen sind die Parameterliste und der Codeblock optional. Wenn nur ein Parameter vorhanden ist, können die Klammern weggelassen werden. Wenn der Codeblock nur eine Zeile umfasst, können die geschweiften Klammern weggelassen werden. Der folgende Codeblock verwendet beispielsweise einen Lambda-Ausdruck, um 1 zu einer Zahl hinzuzufügen: Liste

Erweiterter Leitfaden zu Python-Lambda-Ausdrücken: Vom Anfänger bis zum Meister Erweiterter Leitfaden zu Python-Lambda-Ausdrücken: Vom Anfänger bis zum Meister Feb 24, 2024 pm 03:31 PM

Einführung und grundlegende Syntax von Lambda-Ausdrücken Lambda-Ausdrücke bestehen aus einer Funktionsparameterliste, einem Doppelpunkt und einem Funktionskörper. Die Liste der Funktionsparameter ist dieselbe wie die einer gewöhnlichen Funktion, und der Funktionskörper ist ein Ausdruck und keine Reihe von Anweisungen. #Beispiel: Geben Sie eine Funktion zurück, die zwei Zahlen empfängt und deren Summe zurückgibt sum=lambdax,y:x+y Anwendungsszenarien von Lambda-Ausdrücken Lambda-Ausdrücke eignen sich sehr gut für den Einsatz als Callback-Funktionen, Filterfunktionen und Mapping-Funktionen. Rückruffunktion: Eine Rückruffunktion ist eine Funktion, die innerhalb einer anderen Funktion aufgerufen wird. Lambda-Ausdrücke erleichtern das Erstellen von Rückruffunktionen, ohne deren Namen zu deklarieren. Filterfunktion: Die Filterfunktion dient zum vollständigen Herausfiltern

Der try-Anweisungsblock in PHP8.0 unterstützt Ausdrücke Der try-Anweisungsblock in PHP8.0 unterstützt Ausdrücke May 14, 2023 am 08:12 AM

Mit der rasanten Entwicklung der Computertechnologie werden Programmiersprachen ständig aktualisiert und verbessert. Unter anderem wird PHP als häufig verwendete Webentwicklungssprache ständig innoviert und bringt neue Versionen auf den Markt. Vor kurzem hat die Veröffentlichung der PHP8.0-Version große Aufmerksamkeit erregt. Unter anderem haben die Verbesserungen des Ausnahmebehandlungsmechanismus in der neuen Version große Aufmerksamkeit erregt. Dieser Artikel konzentriert sich auf das Thema der Unterstützung von Try-Anweisungsblöcken für Ausdrücke in PHP8.0. 1. Verbesserungen im Ausnahmebehandlungsmechanismus von PHP8.0 In früheren Versionen, P

See all articles