mysql 正則函式 MySQL的正規表示式

2021-10-18 21:14:08 字數 1722 閱讀 1290

1.  mysql的正規表示式僅僅使sql語言的乙個子集,可以匹配基本的字元、字串。

例如:select * from wp_posts where post_name regexp 'hello',可以檢索出列post_name中所有包含hello的行

regexp '.og'  .是正規表示式中里乙個特殊的字元。它表示匹配乙個字元,因此,dog,hog,mog等等都能匹配。

注意:關於like和regexp的區別:like匹配整個列。如果被匹配的文字僅在列值**現,like並不會找到它,相應的行也不會返回(當然,使用萬用字元除外)。而regexp在列值內進行匹配,如果被匹配的匹配的文字在列值**現,regexp將會找到它,相應的行將被返回,這時乙個非常重要的差別(當然,如果適應定位符號^和$,可以實現regexp匹配整個列而不是列的子集)。

關於大小寫的區分:mysql中正規表示式匹配(從版本3.23.4後)不區分大小寫 。如果要區分大小寫,應該使用binary關鍵字,如where post_name regexp binary 'hello .000'

2.關於or匹配

為了搜尋兩個串之一,使用|, 如,select * from products where pro_id regexp '1000|2000'  order by pro_id;

這樣就1000和2000都能匹配並返回,當然,使用多個|就可以匹配多個串

3.只是匹配幾個字元[]

例如,這樣將要匹配[0123456789]可以匹配0到9,[1-4][4-9]也是合法的範圍。此外,範圍不一定只是數值的,[a-z]匹配任意字母字元

如:select prod_name from products where prod_name regexp '[1-5] ton' order by prod_name;

4.匹配特殊字元使用\進行轉義

\\.能夠匹配.

\\f換頁

\\n換行

\\r回車

\\t製表

\\縱向製表

注意:為了匹配\本身,需要使用\\\

5.匹配字元類

[:alnum:]    任意字母和數字(通[a-za-z0-9])

[:alpha:]     任意字元(同[a-za-z])

[:blank:]    空格和製表符(同[\\t])

[:digit:]     任意數字(同[0-9])

[:lower:]  任意小寫字母

[:upper:]   任意大寫字母

[:space:]   包括空格在內的任意空白字元

6.匹配多個例項,關於重複元字元

*      0個或者多個匹配

+     1個或者多個匹配(等於)

?     1個或者多個匹配(等於)

指定數目的匹配

不少於指定數目的匹配

匹配數目的範圍(m不超過255)

例子:  select prod_name from products where prod_name regexp '[[:digit:]]'   ,如前所述,[:digit:]匹配任意素子,因而它為數字的乙個幾何。確切的要求它前面的字元(任意數字)出現3此,所以[[:digit:]]匹配連在一起的任意4位數字,當然,上面的例子也可以這樣寫regexp '[0-9][0-9][0-9][0-9]'

7.定位符

^  文字的開始

&  文字的結尾

[[:>:]]   詞的結尾

通過使用這些定位符,能夠使regexp起類似like的作用

mysql正則替換 mysql的正則替換方式

在為外來版本翻譯的時候,遇到這樣的問題。要對去除括號內所有字元,替換掉,但是mysql無法簡單的實現 找了下c 也不行,只能用更簡單的c 了,正則替換好用,對於正則替換還真不是很懂,linux還可以。c 就只能拿來主義了。有空研究研究下.cmysql.cs using system using sy...

mysql 特殊函式 mysql 的特殊函式

1.format 函式 函式用於對字段的顯示進行格式化 語法 select format column name,format from table name column name 必需。要格式化的字段 format 必需。規定格式。2.ucase 函式 ucase 函式把字段的值轉換為大寫。語法...

mysql 常用的函式 mysql常用的函式

1 if expr1,expr2,expr3 函式 如果 expr1 是true 則 if 的返回值為expr2 否則返回值則為 expr3。if 的返回值為數字值或字串值,具體情況視其所在語境而定。例 2 ifnull expr1,expr2 函式 如果expr1 不為 null,則 ifnull...