ps:本文为作者学习《 MySQL必会必知》的学习笔记
正则表达式搜索
基本字符匹配
- 假设在用户表中查名字带你好的数据,可以使用REGEXP代替LIKE。
- REGEXP的作用是,告诉MySQL后面所跟的东西作为正则表达式处理。
SELECT NAME
FROM
`user`
WHERE
NAME REGEXP '你好'
ORDER BY
NAME
- 正则表达式中各类字符多种多样,可以符合很多要求,例如下面的. , .在正则表达式中是一个特殊字符,他表示匹配任意一个字符
SELECT NAME
FROM
`user`
WHERE
NAME REGEXP '.你好'
ORDER BY
NAME
- 同时正则表达式自MySQL3.23.4版本后就不区分大小写,如果想要区分大小写的话使用BINARY关键字。
进行OR匹配
- 如果要使用正则表达式来进行OR操作,使用|,|在正则表达式的意思就是满足|左右其中一个条件。
SELECT age
FROM
`user`
WHERE
age REGEXP '12|13'
ORDER BY
age
匹配几个字符之一
- 假设要匹配多个字符之一的话可以使用[ ],[123]4的意思就是可以匹配14,24,34。
- 其实[123]4就是[1|2|3]4的简写。
SELECT age
FROM
`user`
WHERE
age REGEXP '[123]4'
ORDER BY
age
匹配范围
- 可以使用[ - ]的形式来进行范围匹配,[1-3]4的意思就是14,24,34。也可以匹配字符[a-z]。
SELECT age
FROM
`user`
WHERE
age REGEXP '[1-3]4'
ORDER BY
age
匹配特殊字符
- 假设内容中包含.、[]这种特殊字符的我们使用\来查找,为了匹配\自身,我们使用\\。
SELECT age
FROM
`user`
WHERE
age REGEXP '\\.'
ORDER BY
age