mysql like子句和正则表达式匹配
-基础笔记-
MySQL like 子句和正则表达式的使用
MySQL 可以通过 LIKE …% 来进行模糊匹配,也可以使用 REGEXP
操作符来进行正则表达式匹配
LIKE
当需要获取 WHERE
字段中包含的匹配记录,就需要在 WHERE
子句中使用 LIKE
子句WHERE
子句中可以使用 =
来设定获取数据的条件,LIKE
子句中使用百分号 %
字符来表示任意字符.如果没有使用 %
, LIKE
子句与 =
的效果是一样的
可以使用 AND
或者 OR
指定一个或多个条件,可以在 DELETE
或 UPDATE
命令中使用 WHERE...LIKE
子句来指定条件
SELECT field1, field2,...fieldN |
与 WHERE 条件结合
'%a' //以a结尾的数据 |
正则表达式
MySQL 正则模式可应用于 REGEXP 操作符中
MySQL 中正则表达式匹配不区分大小写,如希望区分大小写,可使用 binary 关键字
模式 | 描述 | ||||
---|---|---|---|---|---|
^ |
匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 ‘\n’ 或 ‘\r’ 之后的位置。 | ||||
$ |
匹配输入字符串的结束位置。如果设置了 RegExp 对象的 Multiline 属性,$ 也匹配 ‘\n’ 或 ‘\r’ 之前的位置。 | ||||
. |
匹配除 “\n” 之外的任何单个字符。要匹配包括 ‘\n’ 在内的任何字符,请使用象 ‘[.\n]’ 的模式。 | ||||
[...] |
字符集合。匹配所包含的任意一个字符。例如, ‘[abc]’ 可以匹配 “plain” 中的 ‘a’。 | ||||
[^...] |
负值字符集合。匹配未包含的任意字符。例如, ‘abc‘ 可以匹配 “plain” 中的’p’。 | ||||
`p1 | p2 | p3` | 匹配 p1 或 p2 或 p3。例如,’z | food’ 能匹配 “z” 或 “food”。’(z | f)ood’ 则匹配 “zood” 或 “food”。 |
* |
匹配前面的子表达式零次或多次。例如,zo 能匹配 “z” 以及 “zoo”。 等价于{0,}。 | ||||
+ |
匹配前面的子表达式一次或多次。例如,’zo+’ 能匹配 “zo” 以及 “zoo”,但不能匹配 “z”。+ 等价于 {1,}。 | ||||
{n} |
n 是一个非负整数。匹配确定的 n 次。例如,’o{2}’ 不能匹配 “Bob” 中的 ‘o’,但是能匹配 “food” 中的两个 o。 | ||||
{n,m} |
m 和 n 均为非负整数,其中 n <= m。最少匹配 n 次且最多匹配 m 次。 |
示例
任意字母数字:[a-zA-Z0-9]
任意十六进制:[a-fA-F0-9]
任意字符:[a-zA-Z]
空格和制表符:[\t]
任意空白字符:[\f\n\r\t\v] (换页\换行\回车\制表\纵向制表)
x OR y:”x|y”
email:”@163[.,]com$“
x 至少出现一次,最多出现三次:”x{1,3}”
- 本文链接:https://hyqskevin.github.io/2019/02/23/mysql-regular/
- 版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 CN 许可协议。转载请注明出处!