欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL用正則表達(dá)式進(jìn)行搜索功能實(shí)例

 更新時(shí)間:2025年08月23日 10:48:54   作者:Just_?Run  
MySQL中的正則表達(dá)式是一種強(qiáng)大的文本匹配工具,它允許你使用特定的模式來搜索、替換或檢查字符串中的數(shù)據(jù),這篇文章主要介紹了MySQL用正則表達(dá)式進(jìn)行搜索功能的相關(guān)資料,需要的朋友可以參考下

一、正則表達(dá)式介紹

  • 正則表達(dá)式是用來匹配文本的特殊的串(字符集合)。
  • 所有種類的程序設(shè)計(jì)語言、文本編輯器、操作系統(tǒng)等都支持正則表達(dá)式

二、使用MySQL正則表達(dá)式

  • MySQL僅支持多數(shù)正則表達(dá)式實(shí)現(xiàn)的一個(gè)很小的子集。

2.1基本字符匹配

REGEXP后所跟的東西作為正則表達(dá)式處理。
用法:

SELECT 列名 FROM 表名 WHERE 列名 REGEXP 正則表達(dá)式;

示例:

mysql> SELECT * FROM userinfo WHERE food LIKE 'le' ORDER BY food; # LIKE匹配整列,故無返回
Empty set (0.00 sec)

mysql> SELECT * FROM userinfo WHERE food REGEXP 'le' ORDER BY food; # REGEXP在列值內(nèi)匹配
+----+----------+----------+--------+------+-------+
| id | username | password | status | age  | food  |
+----+----------+----------+--------+------+-------+
|  4 | 小張     |      397 |      0 |   24 | apple |
|  1 | 小明     |    12345 |      0 |   18 | nudle |
+----+----------+----------+--------+------+-------+
2 rows in set (0.01 sec)

2.2 OR匹配

為搜索兩個(gè)串之一(或者為這個(gè)串,或者為另一個(gè)串),使用"|"
用法:

SELECT 列名 FROM 表名 WHERE 列名 REGEXP '串1|串2';

示例:

mysql> SELECT username,food FROM userinfo WHERE food REGEXP 'milk|beef'; # 正則表達(dá)式OR操作符
+----------+------+
| username | food |
+----------+------+
| 小紅     | beef |
| 小剛     | milk |
+----------+------+
2 rows in set (0.00 sec)

mysql> SELECT username,food FROM userinfo WHERE food = 'milk' OR food = 'beef'; # 同子句OR
+----------+------+
| username | food |
+----------+------+
| 小紅     | beef |
| 小剛     | milk |
+----------+------+
2 rows in set (0.00 sec)

2.3 匹配幾個(gè)字符之一

匹配特定字符串,通過指定一組"[]"括起來的字符來完成。
用法:

SELECT 列名 FROM 表名 WHERE 列名 REGEXP '[特定字符]銜接字符';

示例:

mysql> SELECT username,food FROM userinfo WHERE food REGEXP '[bl]e'; # 匹配列值中'e'前為'b'或'l'的列,同'[b|l]e'
+----------+-------+
| username | food  |
+----------+-------+
| 小明     | nudle |
| 小紅     | beef  |
| 小張     | apple |
+----------+-------+
3 rows in set (0.00 sec)

2.4 匹配范圍

集合可用來定義要匹配的一個(gè)或多個(gè)字符,為簡(jiǎn)化這種類型的集合,可使用"[-]"來定義一個(gè)范圍
用法:

SELECT 列名 FROM 表名 WHERE 列名 REGEXP '[范圍左端-范圍右端]銜接字符';

示例:

mysql> SELECT username,food FROM userinfo WHERE food REGEXP '[a-c]e'; # 匹配列值中'e'前為'a'到'c'的列
+----------+------+
| username | food |
+----------+------+
| 小紅     | beef |
+----------+------+
1 row in set (0.00 sec)

2.5 匹配特殊字符

正則表達(dá)式語言由具有特定含義的特殊字符構(gòu)成。為了匹配特殊字符,必須用 \ 為前導(dǎo)
用法:

SELECT 列名 FROM 表名 WHERE 列名 REGEXP '\\特殊字符';

示例:

mysql> SELECT username,password FROM userinfo WHERE password REGEXP '\\.'; # 匹配列值中存在特殊字符'.'的列
+----------+----------+
| username | password |
+----------+----------+
| 小紅     | 67890.   |
+----------+----------+
1 row in set (0.00 sec)
  • \或\?:多數(shù)正則表達(dá)式實(shí)現(xiàn)使用單個(gè)反斜杠轉(zhuǎn)義特殊字符,以便能使用這些字符本身。但MySQL要求兩個(gè)反斜杠(MySQL自己解釋一個(gè),正則表達(dá)式庫(kù)解釋另一個(gè))

2.6 匹配字符類

存在找出你自己經(jīng)常使用的數(shù)字、所有字母字符或所有數(shù)字字母字符等的匹配。為更方便工作,可以使用預(yù)定義的字符集,稱為字符類

2.7 匹配多個(gè)實(shí)例

有時(shí)需要對(duì)匹配的數(shù)目進(jìn)行更強(qiáng)的控制。

示例:

mysql> SELECT username,food FROM userinfo WHERE food REGEXP '[[:alpha:]]{5}'; # 匹配存在連續(xù)5個(gè)任意字母的列
+----------+-------+
| username | food  |
+----------+-------+
| 小明     | nudle |
| 小張     | apple |
+----------+-------+
2 rows in set (0.00 sec)

2.8 定位符

目前為止的所有例子都是匹配一個(gè)串中任意位置的文本。為了匹配特定位置的文本,需要使用定位符。

用法:

SELECT 列名 FROM 表名 WHERE 列名 REGEXP '^[特定文本]'

示例:

mysql> SELECT username,food FROM userinfo WHERE food REGEXP '^[mi]';
+----------+------+
| username | food |
+----------+------+
| 小剛     | milk |
| 小浩     | mini |
+----------+------+
2 rows in set (0.00 sec)
  • 簡(jiǎn)單的正則表達(dá)式測(cè)試: 可以在不使用數(shù)據(jù)庫(kù)表的情況下用SELECT來測(cè)試正則表達(dá)式。。REGEXP檢查總是返回0(沒有匹配)或1(匹配)。
mysql> SELECT 'hello' REGEXP '^[h]';
+-----------------------+
| 'hello' REGEXP '^[h]' |
+-----------------------+
|                     1 |
+-----------------------+
1 row in set (0.00 sec)

三、小結(jié)

本章介紹了正則表達(dá)式的基礎(chǔ)知識(shí),學(xué)習(xí)了如何在MySQL的SELECT語句中通過REGEXP關(guān)鍵字使用它們。

關(guān)鍵詞作用示例
REGEXP表示通配符匹配SELECT 列名 FROM 表名 WHERE 列名 REGEXP 正則表達(dá)式;

總結(jié) 

到此這篇關(guān)于MySQL用正則表達(dá)式進(jìn)行搜索功能的文章就介紹到這了,更多相關(guān)MySQL正則表達(dá)式搜索內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 淺談MySql?update會(huì)鎖定哪些范圍的數(shù)據(jù)

    淺談MySql?update會(huì)鎖定哪些范圍的數(shù)據(jù)

    本文主要介紹了記錄一下MySql?update會(huì)鎖定哪些范圍的數(shù)據(jù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • mysqldump加-w參數(shù)備份數(shù)據(jù)時(shí)需要注意的事項(xiàng)

    mysqldump加-w參數(shù)備份數(shù)據(jù)時(shí)需要注意的事項(xiàng)

    這篇文章主要介紹了mysqldump加-w參數(shù)備份數(shù)據(jù)時(shí)需要注意的事項(xiàng),需要的朋友可以參考下
    2014-06-06
  • MySQL查詢不區(qū)分大小寫的兩種解決方式

    MySQL查詢不區(qū)分大小寫的兩種解決方式

    偶然機(jī)會(huì),發(fā)現(xiàn)一次查詢匹配數(shù)據(jù)的時(shí)候沒有區(qū)分大小寫,如,username = ‘WangWu’,username = 'wangwu’的記錄也被查出來,本文介紹解決這種情況的兩種方式,并通過代碼講解的非常詳細(xì),需要的朋友可以參考下
    2025-01-01
  • MySQL定位長(zhǎng)事務(wù)(Identify Long Transactions)的實(shí)現(xiàn)

    MySQL定位長(zhǎng)事務(wù)(Identify Long Transactions)的實(shí)現(xiàn)

    在MySQL的運(yùn)行中,經(jīng)常會(huì)遇到一些長(zhǎng)事務(wù),本文主要介紹了MySQL定位長(zhǎng)事務(wù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-09-09
  • Mysql中索引和約束的示例語句

    Mysql中索引和約束的示例語句

    這篇文章主要介紹了Mysql中索引和約束的相關(guān)資料,幫助大家更好的理解和使用MySQL,感興趣的朋友可以了解下
    2021-01-01
  • 線上MySQL的自增id用盡怎么辦

    線上MySQL的自增id用盡怎么辦

    MySQL的自增id都定義了初始值,然后不斷加步長(zhǎng)。雖然自然數(shù)沒有上限,但定義了表示這個(gè)數(shù)的字節(jié)長(zhǎng)度,那自增id用完,會(huì)怎么樣?本文就來介紹一下
    2021-08-08
  • PhpMyAdmin 配置文件現(xiàn)在需要一個(gè)短語密碼的解決方法

    PhpMyAdmin 配置文件現(xiàn)在需要一個(gè)短語密碼的解決方法

    本文主要介紹PhpMyAdmin 配置文件現(xiàn)在需要一個(gè)短語密碼的解決方法,比較實(shí)用,希望能給大家做一個(gè)參考。
    2016-06-06
  • MySQL下高可用故障轉(zhuǎn)移方案MHA的超級(jí)部署教程

    MySQL下高可用故障轉(zhuǎn)移方案MHA的超級(jí)部署教程

    這篇文章主要介紹了MySQL下高可用故障切換方案MHA的超級(jí)部署教程,文中隊(duì)MHA方案的一些特點(diǎn)做了介紹,示例基于Linux系統(tǒng)的服務(wù)器環(huán)境,需要的朋友可以參考下
    2015-12-12
  • mysql5.7及mysql 8.0版本修改root密碼的方法小結(jié)

    mysql5.7及mysql 8.0版本修改root密碼的方法小結(jié)

    這篇文章主要介紹了mysql5.7及mysql 8.0版本修改root密碼方式 ,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-11-11
  • 教你為MySQL數(shù)據(jù)庫(kù)換擋加速

    教你為MySQL數(shù)據(jù)庫(kù)換擋加速

    如果你是個(gè)賽車手,并且按一下按鈕就能夠立即更換引擎而不需要把車開到車庫(kù)里去換,那會(huì)是什么感覺呢?MySQL數(shù)據(jù)庫(kù)為開發(fā)人員所做的就好像是按按鈕換引擎;它讓你選擇數(shù)據(jù)庫(kù)引擎,并給你一條簡(jiǎn)單的途徑來切換它。
    2010-02-02

最新評(píng)論