可以通过
REGEXP进行正则匹配,与like用法类似,
BINARY可以区分大小写匹配:
SELECT
*
FROM
`mytable`
Where
name
REGEXP
'name'
;
'
[123] aA' '
Aa
.
001
|
002'
[123]
表示1或2或3
[^123]
表示除了1 2 3
[0-9]
表示1 2 3 4 5 6 7 8 9 等价于
[0123456789]
同理
[a-z]
也可以
.
表示任意一个字符
|
表示取两者之一,有或者的意思
\\
表示转义
如查找
.
则为:
\\.
*
表示前面出现任意次数
'Aa*'
可以匹配包含
Aa
的
+
表示前面出现大于一次
'Aa+'
其中
A
无法匹配
?
表示前面出现0次或者1次相当于{0,1}
'Aa?'
其中
Aaa
无法匹配
{n}
表示前面出现n次
'Aa{2}
'
只能匹配
Aaa
{m,n}
表示前面出现最少m次最多n次,其中m<n.
'Aa{1,2}
'
可以匹配
Aa Aaa
空白元字符
\\f
换
\\n
换行
\\r
回车
\\t
制表
\\v
纵向制表
定位符
^
文本开始
$
文本结束
[[:<:]]
词开始
[[:>:]]
词结束
例如:
^[0-9]
表示文本以数字开头的文本
在不适用数据库的前提下也可以使用正则表达式,返回
1(匹配)
和
0(不匹配)
如:
SELECT
'hello'
REGEXP
'[0-9]'
;
返回
0
使用的时候需要外面加[],
SELECT
*
FROM
`table`
Where
name
REGEXP
'[[:digit:]]'
;
匹配字符类