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

這篇文章主要介紹了MySQL正則表達式,一個簡單的MySQL正則表達式入門教程,需要的朋友可以參考下:

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

但是,這個模糊檢索的功能有很多限制,簡單來說就是太模糊了。

在MySQL中提供了 REGEXP 關鍵字來支持正則表達式,當然,只是一些很簡單的正則啦。

首先,我們構造一些測試數據.

代碼如下:

-- 建表

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;

增加一些測試數據:

復制代碼 代碼如下:

-- 插入一些測試數據:

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. 最簡單的查詢:

復制代碼 代碼如下:

SELECT * 

FROM t_regcustomer;

2. 指定列名查詢

代碼如下:

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

FROM t_regcustomer c 

;

3. 對查詢結果排序

代碼如下:

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

FROM t_regcustomer c 

ORDER BY c.age ASC 

;

4. like 模糊檢索

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

代碼如下:

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

FROM t_regcustomer c 

WHERE c.name LIKE '%鵬%' 

ORDER BY c.age ASC 

;

5. regexp 關鍵字

.匹配任意一個字符

注意此處因為沒有起始(^)和結束($)限定符,所以只要列中出現(xiàn)的行都會被檢索出來.

代碼如下:

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. 大小寫敏感

復制代碼 代碼如下:

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

FROM t_regcustomer c 

WHERE c.name REGEXP BINARY '^s' 

ORDER BY c.age ASC 

;

8. 正則或運算

復制代碼 代碼如下:

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

FROM t_regcustomer c 

WHERE c.name REGEXP BINARY 'a|s' 

ORDER BY c.name ASC 

;

9. 組運算正則

[123] 表示 1、2、3這3個數字之一出現(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. 轉義

使用 \\

可以轉義 \.[]()?-| 以及分頁,換行符號等

更多信息請查看IT技術專欄

更多信息請查看數據庫
易賢網手機網站地址:MySQL正則表達式入門教程

2025國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯(lián)系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 加入群交流 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:526150442(9:00—18:00)版權所有:易賢網