MySQL正則表達(dá)式入門教程
來(lái)源:易賢網(wǎng) 閱讀:982 次 日期:2014-04-22 09:28:55
溫馨提示:易賢網(wǎng)小編為您整理了“MySQL正則表達(dá)式入門教程”,方便廣大網(wǎng)友查閱!

這篇文章主要介紹了MySQL正則表達(dá)式,一個(gè)簡(jiǎn)單的MySQL正則表達(dá)式入門教程,需要的朋友可以參考下:

我們知道,在SQL之中,可以用 like 這個(gè)謂詞(表達(dá)式) 來(lái)進(jìn)行模糊檢索,并支持 %,?,_等占位符.

但是,這個(gè)模糊檢索的功能有很多限制,簡(jiǎn)單來(lái)說(shuō)就是太模糊了。

在MySQL中提供了 REGEXP 關(guān)鍵字來(lái)支持正則表達(dá)式,當(dāng)然,只是一些很簡(jiǎn)單的正則啦。

首先,我們構(gòu)造一些測(cè)試數(shù)據(jù).

代碼如下:

-- 建表

USE test;

DROP TABLE IF EXISTS t_regcustomer;

CREATE TABLE t_regcustomer (

 id INT(10) AUTO_INCREMENT

 ,name VARCHAR(256)

 ,age INT(10)

 , PRIMARY KEY(id)

) COLLATE='utf8_general_ci' ENGINE=InnoDB;

增加一些測(cè)試數(shù)據(jù):

復(fù)制代碼 代碼如下:

-- 插入一些測(cè)試數(shù)據(jù):

TRUNCATE TABLE t_regcustomer;

INSERT INTO t_regcustomer(name, age) VALUES ('王明',20);

INSERT INTO t_regcustomer(name, age) VALUES ('王大',21);

INSERT INTO t_regcustomer(name, age) VALUES ('小王',22);

INSERT INTO t_regcustomer(name, age) VALUES ('小王2',22);

INSERT INTO t_regcustomer(name, age) VALUES ('敲不死',23);

INSERT INTO t_regcustomer(name, age) VALUES ('憨憨',24);

INSERT INTO t_regcustomer(name, age) VALUES ('憨憨2',24);

INSERT INTO t_regcustomer(name, age) VALUES ('郭靖名',25);

INSERT INTO t_regcustomer(name, age) VALUES ('郭靖2',25);

INSERT INTO t_regcustomer(name, age) VALUES ('郭靖3',25);

INSERT INTO t_regcustomer(name, age) VALUES

('郭得缸',25)

,('大鵬',20)

,('大鵬2',20)

,('大鵬3',20)

,('二鵬',19)

,('鵬鵬',18)

,('鵬鵬1',18)

,('小鵬',17)

,('AAA',17)

,('aaa',17)

,('SS',17)

,('s2',17)

,('ss',17)

1. 最簡(jiǎn)單的查詢:

復(fù)制代碼 代碼如下:

SELECT * 

FROM t_regcustomer;

2. 指定列名查詢

代碼如下:

SELECT c.id, c.name, c.age 

FROM t_regcustomer c 

;

3. 對(duì)查詢結(jié)果排序

代碼如下:

SELECT c.id, c.name, c.age 

FROM t_regcustomer c 

ORDER BY c.age ASC 

;

4. like 模糊檢索

%匹配任意數(shù)量(0~n)的任意字符

代碼如下:

SELECT c.id, c.name, c.age 

FROM t_regcustomer c 

WHERE c.name LIKE '%鵬%' 

ORDER BY c.age ASC 

;

5. regexp 關(guān)鍵字

.匹配任意一個(gè)字符

注意此處因?yàn)闆](méi)有起始(^)和結(jié)束($)限定符,所以只要列中出現(xiàn)的行都會(huì)被檢索出來(lái).

代碼如下:

SELECT c.id, c.name, c.age 

FROM t_regcustomer c 

WHERE c.name REGEXP '.鵬.' 

ORDER BY c.age ASC 

;

6. 正則起始限定符

代碼如下:

SELECT c.id, c.name, c.age 

FROM t_regcustomer c 

WHERE c.name REGEXP '^王' 

ORDER BY c.age ASC 

;

7. 大小寫敏感

復(fù)制代碼 代碼如下:

SELECT c.id, c.name, c.age 

FROM t_regcustomer c 

WHERE c.name REGEXP BINARY '^s' 

ORDER BY c.age ASC 

;

8. 正則或運(yùn)算

復(fù)制代碼 代碼如下:

SELECT c.id, c.name, c.age 

FROM t_regcustomer c 

WHERE c.name REGEXP BINARY 'a|s' 

ORDER BY c.name ASC 

;

9. 組運(yùn)算正則

[123] 表示 1、2、3這3個(gè)數(shù)字之一出現(xiàn)即可

代碼如下:

SELECT c.id, c.name, c.age 

FROM t_regcustomer c 

WHERE c.name REGEXP BINARY '鵬[123]' 

ORDER BY c.name ASC

[1-9] 匹配 1、2、3、.... 8、9

代碼如下:

SELECT c.id, c.name, c.age 

FROM t_regcustomer c 

WHERE c.name REGEXP BINARY '鵬[1-9]' 

ORDER BY c.name ASC 

;

10. 轉(zhuǎn)義

使用 \\

可以轉(zhuǎn)義 \.[]()?-| 以及分頁(yè),換行符號(hào)等

更多信息請(qǐng)查看IT技術(shù)專欄

更多信息請(qǐng)查看數(shù)據(jù)庫(kù)
易賢網(wǎng)手機(jī)網(wǎng)站地址:MySQL正則表達(dá)式入門教程
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢 | 簡(jiǎn)要咨詢須知 | 加入群交流 | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65317125(9:00—18:00) 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)