MySQL中replace和regxp正則的運用

2021-08-19 14:54:12 字數 2147 閱讀 2942

mysql replace用法

1.replace into

**如下

replace into table (id,name) values('1′,'aa'),('2′,'bb') 

此語句的作用是向表table中插入兩條記錄。如果主鍵id為1或2不存在 

就相當於

**如下

insert into table (id,name) values('1′,'aa'),('2′,'bb') 

如果存在相同的值則不會插入資料

2.replace(object,search,replace) 

把object中出現search的全部替換為replace

**如下

select

replace('www.111cn.net','w','ww')—>wwwwww.111cn.net 

例:把錶table中的name欄位中的aa替換為bb 

update table set name=replace(name,'aa','bb')

由mysql提供的模式匹配的其它型別是使用擴充套件正規表示式

。當你對這類模式進行匹配測試時,使用regexp和not regexp操作符(或rlike和not rlike,它們是同義詞)。 

擴充套件正規表示式

的一些字元是:

· 『.'匹配任何單個的字元。 

· 字元類「[...]」匹配在方括號內的任何字元。例如,「[abc]」匹配「a」、「b」或「c」。為了命名字元的範圍,使用乙個「-」。「[a-z]」匹配任何字母,而「[0-9]」匹配任何數字。 

· 「 * 」匹配零個或多個在它前面的字元。例如,「x*」匹配任何數量的「x」字元,「[0-9]*」匹配任何數量的數字,而「.*」匹配任何數量的任何字元。

如果regexp模式與被測試值的任何地方匹配,模式就匹配(這不同於like模式匹配,只有與整個值匹配,模式才匹配)。 

為了定位乙個模式以便它必須匹配被測試值的開始或結尾,在模式開始處使用「^」或在模式的結尾用「$」。

為了說明擴充套件正規表示式

如何工作,下面使用regexp重寫上面所示的like查詢:

1.為了找出以「d」開頭的名字,使用「^」匹配名字的開始:

select * from master_data.md_employee where name regexp '^d';

這樣的結果集是不區分大小寫的,如果你想強制使regexp比較區分大小寫,使用binary關鍵字使其中乙個字串變為二進位制字串。該查詢只匹配名稱首字母的小寫『d'。

select * from master_data.md_employee where name regexp binary'^d';

為了找出以「love」結尾的名字,使用「$」匹配名字的結尾: 

select id,name from master_data.md_employee where name regexp 'love$';

為了找出包含乙個「w」的名字,使用以下查詢: 

select id,name from master_data.md_employee where name regexp 'w';

既然如果乙個正規表示式出現在值的任何地方,其模式匹配了,就不必在先前的查詢中在模式的兩側放置乙個萬用字元以使得它匹配整個值,就像你使用了乙個sql模式那樣。 

為了找出包含正好5個字元的名字,使用「^」和「$」匹配名字的開始和結尾,和5個「.」例項在兩者之間:

select id,name from master_data.md_employee where name regexp '^.....$';

你也可以使用「」「重複n次」操作符重寫前面的查詢:

select id,name from master_data.md_employee where name regexp '^.$';

mySQL中replace的用法

mysql replace例項說明 update tb1 set f1 replace f1,abc def replace str,from str,to str 在字串 str 中所有出現的字串 from str 均被 to str替換,然後返回這個字串 這個函式用來批量替換資料中的非法關鍵字是...

mySQL中replace的用法

mysql replace函式我們經常用到,下面就為您詳細介紹mysql replace函式的用法,希望對您學習mysql replace函式方面能有所啟迪 mysql replace例項說明 update tb1 set f1 replace f1,abc def replace str,from...

mySQL中replace的用法

mysql replace函式我們經常用到,下面就為您詳細介紹mysql replace函式的用法,希望對您學習mysql replace函式方面能有所啟迪update tb1 set f1 replace f1,abc def replace str,from str,to str 在字串 str...