mysql中如何使用正則表達(dá)式查詢
更新時(shí)間:2014年06月11日 09:18:52 作者:
這篇文章主要介紹了mysql中如何使用正則表達(dá)式查詢,需要的朋友可以參考下
基本形式
屬性名 regexp ‘匹配方式'
正則表達(dá)式的模式字符
^ 匹配字符開(kāi)始的部分
eg1: 從info表name字段中查詢以L開(kāi)頭的記錄
select * from info where name regexp '^L';
eg2: 從info表name字段中查詢以aaa開(kāi)頭的記錄
select * from info where name regexp '^aaa';
$ 匹配字符結(jié)束的部分
eg1: 從info表name字段中查詢以c結(jié)尾的記錄
select * from info where name regexp 'c$';
eg2: 從info表name字段中查詢以aaa結(jié)尾的記錄
select * from info where name regexp 'aaa$';
. 匹配字符串中的任意一個(gè)字符,包括回車(chē)和換行
eg1: 從info表name字段中查詢以L開(kāi)頭y結(jié)尾中間有兩個(gè)任意字符的記錄
select * from info where name regexp '^L..y$';
[字符集合]匹配字符集合中的任意字符
eg1: 從info表name字段中查詢包含c、e、o三個(gè)字母中任意一個(gè)的記錄
select * from info where name regexp '[ceo]';
eg2: 從info表name字段中查詢包含數(shù)字的記錄
select * from info where name regexp '[0-9]';
eg3: 從info表name字段中查詢包含數(shù)字或a、b、c三個(gè)字母中任意一個(gè)的記錄
select * from info where name regexp '[0-9a-c]';
[^字符集合]匹配除了字符集合外的任意字符
eg1: 從info表name字段中查詢包含a-w字母和數(shù)字以外字符的記錄
select * from info where name regexp '[^a-w0-9]';
s1|s2|s3 匹配s1s2s3中的任意一個(gè)
eg1: 從info表name字段中查詢包含'ic'的記錄
select * from info where name regexp 'ic';
eg2: 從info表name字段中查詢包含ic、uc、ab三個(gè)字符串中任意一個(gè)的記錄
select * from info where name regexp 'ic|uc|ab';
* 代表多個(gè)該字符前的字符,包括0個(gè)或1個(gè)
eg1: 從info表name字段中查詢c之前出現(xiàn)過(guò)a的記錄
select * from info where name regexp 'a*c';
+ 代表多個(gè)該字符前的字符,包括1個(gè)
eg1: 從info表name字段中查詢c之前出現(xiàn)過(guò)a的記錄
select * from info where name regexp 'a+c';(注意比較結(jié)果!)
字符串{N} 字符串出現(xiàn)N次
eg1: 從info表name字段中查詢出現(xiàn)過(guò)a3次的記錄
select * from info where name regexp 'a{3}';
字符串{M,N}字符串最少出現(xiàn)M次,最多出現(xiàn)N次
eg1: 從info表name字段中查詢ab出現(xiàn)最少1次最多3次的記錄
select * from info where name regexp 'ab{1,3}';
MYSQL中自帶通配符(LIKE關(guān)鍵詞)
%可以表示任意長(zhǎng)度的字符(包括0)
-可以表示單個(gè)字符
屬性名 regexp ‘匹配方式'
正則表達(dá)式的模式字符
^ 匹配字符開(kāi)始的部分
eg1: 從info表name字段中查詢以L開(kāi)頭的記錄
select * from info where name regexp '^L';
eg2: 從info表name字段中查詢以aaa開(kāi)頭的記錄
select * from info where name regexp '^aaa';
$ 匹配字符結(jié)束的部分
eg1: 從info表name字段中查詢以c結(jié)尾的記錄
select * from info where name regexp 'c$';
eg2: 從info表name字段中查詢以aaa結(jié)尾的記錄
select * from info where name regexp 'aaa$';
. 匹配字符串中的任意一個(gè)字符,包括回車(chē)和換行
eg1: 從info表name字段中查詢以L開(kāi)頭y結(jié)尾中間有兩個(gè)任意字符的記錄
select * from info where name regexp '^L..y$';
[字符集合]匹配字符集合中的任意字符
eg1: 從info表name字段中查詢包含c、e、o三個(gè)字母中任意一個(gè)的記錄
select * from info where name regexp '[ceo]';
eg2: 從info表name字段中查詢包含數(shù)字的記錄
select * from info where name regexp '[0-9]';
eg3: 從info表name字段中查詢包含數(shù)字或a、b、c三個(gè)字母中任意一個(gè)的記錄
select * from info where name regexp '[0-9a-c]';
[^字符集合]匹配除了字符集合外的任意字符
eg1: 從info表name字段中查詢包含a-w字母和數(shù)字以外字符的記錄
select * from info where name regexp '[^a-w0-9]';
s1|s2|s3 匹配s1s2s3中的任意一個(gè)
eg1: 從info表name字段中查詢包含'ic'的記錄
select * from info where name regexp 'ic';
eg2: 從info表name字段中查詢包含ic、uc、ab三個(gè)字符串中任意一個(gè)的記錄
select * from info where name regexp 'ic|uc|ab';
* 代表多個(gè)該字符前的字符,包括0個(gè)或1個(gè)
eg1: 從info表name字段中查詢c之前出現(xiàn)過(guò)a的記錄
select * from info where name regexp 'a*c';
+ 代表多個(gè)該字符前的字符,包括1個(gè)
eg1: 從info表name字段中查詢c之前出現(xiàn)過(guò)a的記錄
select * from info where name regexp 'a+c';(注意比較結(jié)果!)
字符串{N} 字符串出現(xiàn)N次
eg1: 從info表name字段中查詢出現(xiàn)過(guò)a3次的記錄
select * from info where name regexp 'a{3}';
字符串{M,N}字符串最少出現(xiàn)M次,最多出現(xiàn)N次
eg1: 從info表name字段中查詢ab出現(xiàn)最少1次最多3次的記錄
select * from info where name regexp 'ab{1,3}';
MYSQL中自帶通配符(LIKE關(guān)鍵詞)
%可以表示任意長(zhǎng)度的字符(包括0)
-可以表示單個(gè)字符
相關(guān)文章
MySQL錯(cuò)誤:Can‘t?connect?to?MySQL?server?on?localhost解決辦法
這篇文章主要給大家介紹了關(guān)于MySQL錯(cuò)誤:Can‘t?connect?to?MySQL?server?on?localhost的解決辦法,文中介紹的方法分多種情況,通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-05-05
MySQL數(shù)據(jù)庫(kù)防止人為誤操作的實(shí)例講解
這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)防止人為誤操作的方法,需要的朋友可以參考下2014-06-06
MySQL8.x連接5.x 服務(wù)器認(rèn)證問(wèn)題解決
MySQL 8.0與5.x認(rèn)證插件不兼容,需在客戶端指定使用mysql_native_password,下面就來(lái)介紹一下如何解決,感興趣的可以了解一下2025-08-08
mysql LOAD語(yǔ)句批量錄入數(shù)據(jù)
本章的前面討論如何使用SQL向一個(gè)表中插入數(shù)據(jù)。但是,如果你需要向一個(gè)表中添加許多條記錄,使用SQL語(yǔ)句輸入數(shù)據(jù)是很不方便的。2010-03-03
mysql中的utf8與utf8mb4存儲(chǔ)及區(qū)別
本文主要介紹了mysql中的utf8與utf8mb4存儲(chǔ)及區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02
MYSQL使用inner join 進(jìn)行 查詢/刪除/修改示例
本文為大家介紹下使用inner join 進(jìn)行查詢/刪除/修改,具體實(shí)現(xiàn)如下,學(xué)習(xí)mysql的朋也可以學(xué)習(xí)下,希望對(duì)大家有所幫助2013-07-07

