Mysql 萬用字元和正規表示式的使用

2022-03-25 20:28:43 字數 1770 閱讀 2918

%表示任何字元出現任意次數。

查詢出表table中name欄位中任意位置包含i的行:

select

*from

table

where name like

'%i%

'

查詢出表table中name欄位中開頭位置包含i的行:

select

*from

table

where name like'i%

'

查詢出表table中name欄位中結尾位置包含i的行

select

*from

table

where name like'%i

'

注意:%不能匹配null;有一些字段首尾可能會出現空格,為了避免影響匹配結果,可以是同ltrim和rtrim函式去掉首尾的空格。下劃線萬用字元只代表乙個字元。

使用方法和%一樣,比如查詢出表table中name為『aaa』開頭的四個字母的行

select

*from

table

where name like

'aaa_

'

除了使用like進行模糊匹配,還可以使用正規表示式進行模糊匹配。

正規表示式操作符:regexp

查詢出表table中,欄位name以a結尾的且只有兩個字母的所有行:

select

*from

table

where name regexp '

.a'

.是正規表示式的特殊字元,代表匹配任意乙個字元。

查詢出表table中,欄位name為aaa或bbb的行:

select

*from

table

where name regexp '

aaa|bbb

'

|為正規表示式的或操作符。

查詢出表table中,欄位name以a或b或c開頭,且結尾為dd的行:

select

*from

table

where name regexp '

[abc]dd

'

[abc]定義一組字元,意思是:匹配a或b或c。

查詢出表table中,欄位name以1到9開頭,且結尾為a的行:

select

*from

table

where name regexp '

[1-9]a

'

[1-9]意為:匹配1到9任意數字,[a-z]意為匹配任意字元。

這種問題幾乎在每種語言中都會出現,即需要查詢的內容中包含特殊字元。這時候就需要轉義了。

在mysql中轉義符為\\

查詢出表table中,name欄位包含.的行:

注意:正規表示式匹配不區分大小寫,如果需要區分在regexp後面加上關鍵字:binary

正規表示式 和 萬用字元

正規表示式 正規表示式主要是用來描述乙個句法規則的模式。其實說的通俗一點,就是利用字元和元字元的組合,對一些符合既定句法的模式進行模糊匹配。它的主要功能是文字查詢和字串操作。正規表示式的基本元素包括普通字元和元字元,在linux shell裡面,常用的正規表示式元字符集為 s 每乙個元字元都有自己在...

萬用字元和正規表示式

1.like操作符 2.百分號萬用字元 在搜尋串中,表示任何字元出現的任意次數。不能匹配null,如like jet 表示以jet開頭的後面不管多少字元的匹配。如果區分大小寫查詢,使用binary select from test where binary name test 3.下劃線萬用字元 下...

萬用字元和正規表示式

萬用字元叫做檔名萬用字元更能突出其作用範圍,因為 萬用字元主要用於檔名的通配 可以在 shell 命令中使用,常用的萬用字元有以下幾個 星號用來匹配 任意長度 的任意字元。問號用來匹配 任意單個字元。匹配指定範圍 之外的任意單個字元。如 a z lower 匹配小寫字母 a z之外的任意單個字元 匹...