Rumah pangkalan data tutorial mysql MYSQL入门学习之二:使用正则表达式搜索_MySQL

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

Jun 01, 2016 pm 01:38 PM
ungkapan

正则表达式

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
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk menyelesaikan ralat sintaks ungkapan Python? Bagaimana untuk menyelesaikan ralat sintaks ungkapan Python? Jun 24, 2023 pm 05:04 PM

Python, sebagai bahasa pengaturcaraan peringkat tinggi, mudah dipelajari dan digunakan. Sebaik sahaja anda perlu menulis program Python, anda pasti akan menghadapi ralat sintaks, dan ralat sintaks ungkapan adalah perkara biasa. Dalam artikel ini, kita akan membincangkan cara menyelesaikan ralat sintaks ungkapan dalam Python. Ralat sintaks ungkapan adalah salah satu ralat yang paling biasa dalam Python, dan ia biasanya disebabkan oleh penggunaan sintaks yang salah atau kehilangan komponen yang diperlukan. Dalam Python, ungkapan biasanya terdiri daripada nombor, rentetan, pembolehubah dan pengendali. paling biasa

Dalam C dan C++, koma digunakan untuk memisahkan ungkapan atau pernyataan Dalam C dan C++, koma digunakan untuk memisahkan ungkapan atau pernyataan Sep 09, 2023 pm 05:33 PM

Dalam C atau C++, koma "," mempunyai kegunaan yang berbeza. Di sini kita akan belajar cara menggunakannya. Koma sebagai pengendali. Operator koma ialah operator binari yang menilai operan pertama, membuang hasilnya, kemudian menilai operan kedua dan mengembalikan nilai. Operator koma mempunyai keutamaan terendah dalam C atau C++. Contoh #include<stdio.h>intmain(){ intx=(50,60); inty=(func1(),func2());} Di sini 60 akan diberikan kepada x. Untuk pernyataan seterusnya, func1( akan dilaksanakan terlebih dahulu

Pengenalan kepada ungkapan fungsi eksponen dalam bahasa C Pengenalan kepada ungkapan fungsi eksponen dalam bahasa C Feb 18, 2024 pm 01:11 PM

Pengenalan kepada cara menulis ungkapan fungsi eksponen dalam bahasa C dan contoh kod Apakah fungsi eksponen Fungsi eksponen ialah jenis fungsi yang biasa dalam matematik Ia boleh dinyatakan dalam bentuk f(x)=a^x, di mana a ialah asas dan x ialah eksponen. Fungsi eksponen digunakan terutamanya untuk menggambarkan pertumbuhan eksponen atau pereputan eksponen. Contoh kod fungsi eksponen Dalam bahasa C, kita boleh menggunakan fungsi pow() dalam perpustakaan matematik untuk mengira fungsi eksponen Berikut ialah contoh program: #include

ungkapan lambda di Jawa ungkapan lambda di Jawa Jun 09, 2023 am 10:17 AM

Ungkapan Lambda di Jawa Dengan keluaran Java 8, ungkapan lambda telah menjadi salah satu topik yang paling membimbangkan dan dibincangkan di kalangan pembangun Java. Ungkapan Lambda boleh memudahkan kaedah penulisan pengaturcara Java yang membosankan, dan juga boleh meningkatkan kebolehbacaan dan kebolehselenggaraan program. Dalam artikel ini, kami akan mendalami ungkapan lambda dalam Java dan cara ia memberikan pengalaman pengaturcaraan yang lebih mudah dan intuitif dalam kod Java.

Gelung pada koleksi menggunakan ungkapan lambda Gelung pada koleksi menggunakan ungkapan lambda Feb 19, 2024 pm 07:32 PM

Ungkapan lambda ialah fungsi tanpa nama yang boleh digunakan dengan mudah untuk mengulang koleksi. Dalam artikel ini, kami akan memperkenalkan cara menggunakan ungkapan lambda untuk mengulang koleksi dan memberikan contoh kod khusus. Dalam Python, format sintaks ungkapan lambda adalah seperti berikut: senarai parameter lambda: Senarai parameter ungkapan lambda ungkapan boleh mengandungi satu atau lebih parameter, dipisahkan dengan koma. Ungkapan ialah nilai pulangan bagi fungsi lambda. Mari kita lihat contoh mudah di bawah, dengan andaian

Panduan Lanjutan untuk Ungkapan Lambda Python: Dari Permulaan kepada Penguasaan Panduan Lanjutan untuk Ungkapan Lambda Python: Dari Permulaan kepada Penguasaan Feb 24, 2024 pm 03:31 PM

Pengenalan dan sintaks asas ungkapan Lambda Ungkapan Lambda terdiri daripada senarai parameter fungsi, titik bertindih dan badan fungsi. Senarai parameter fungsi adalah sama seperti fungsi biasa, dan badan fungsi ialah ungkapan dan bukannya satu set pernyataan. #Contoh: Kembalikan fungsi yang menerima dua nombor dan mengembalikan jumlah sum=lambdax,y:x+y Senario aplikasi ungkapan Lambda Ungkapan Lambda sangat sesuai digunakan sebagai fungsi panggil balik, fungsi penapis dan fungsi pemetaan. Fungsi panggil balik: Fungsi panggil balik ialah fungsi yang dipanggil dalam fungsi lain. Ungkapan Lambda memudahkan untuk mencipta fungsi panggil balik tanpa mengisytiharkan namanya. Fungsi penapis: Fungsi penapis digunakan untuk menapis penuh

Ekspresi Java Lambda dalam Amalan: Membuka Kunci Misteri Pengaturcaraan Fungsian dengan Kod Ekspresi Java Lambda dalam Amalan: Membuka Kunci Misteri Pengaturcaraan Fungsian dengan Kod Feb 26, 2024 am 10:25 AM

Ungkapan Lambda, seperti namanya, ialah fungsi tanpa nama dengan simbol anak panah (->) sebagai terasnya. Ia membolehkan anda menghantar blok kod sebagai hujah kepada kaedah lain, atau menyimpannya ke dalam pembolehubah untuk kegunaan kemudian. Sintaks ungkapan Lambda ringkas dan mudah difahami, dan ia sangat sesuai untuk memproses aliran data dan pengkomputeran selari. 1. Sintaks asas ungkapan Lambda Sintaks asas ungkapan Lambda adalah seperti berikut: (senarai parameter)->{blok kod} Antaranya, senarai parameter dan blok kod adalah pilihan. Jika terdapat hanya satu parameter, kurungan boleh ditinggalkan. Jika blok kod hanya satu baris, pendakap kerinting boleh ditinggalkan. Sebagai contoh, blok kod berikut menggunakan ungkapan Lambda untuk menambah 1 pada nombor: Senarai

Blok kenyataan cuba dalam PHP8.0 menyokong ungkapan Blok kenyataan cuba dalam PHP8.0 menyokong ungkapan May 14, 2023 am 08:12 AM

Dengan perkembangan pesat teknologi komputer, bahasa pengaturcaraan sentiasa dinaik taraf dan ditambah baik. Antaranya, PHP, sebagai bahasa pembangunan web yang biasa digunakan, sentiasa berinovasi dan melancarkan versi baharu. Baru-baru ini, keluaran versi PHP8.0 telah menarik perhatian yang meluas. Antaranya, penambahbaikan kepada mekanisme pengendalian pengecualian dalam versi baharu telah menarik perhatian ramai. Artikel ini akan menumpukan pada topik sokongan blok pernyataan cuba untuk ungkapan dalam PHP8.0. 1. Penambahbaikan dalam mekanisme pengendalian pengecualian PHP8.0 Dalam versi sebelumnya, P

See all articles