Mysql like和正则表达式
like
name | description |
---|---|
LIKE | |
NOT LIKE | |
STRCMP() | 两个字符串比较 |
% : 匹配0个或任意多个字符
_ : 匹配任意一个字符
escape : 转义字符,可匹配%和_。如SELECT * FROM table_name WHERE column_name LIKE '/%/_%_' ESCAPE'/'
有时候like不能满足我们的需求,需要更详细的匹配
查看官方文档的时候发现了 Regular Expressions
做一下笔记
Regular Expressions
name | description |
---|---|
NOT REGEXP | 不含正则 |
REGEXP | 正则 |
REGEXP_INSTR() | 匹配成功的位置 |
REGEXP_LIKE() | 可以指定编码格式 |
REGEXP_REPLACE() | 替换 |
REGEXP_SUBSTR() | 截取 |
RLIKE |
. : 匹配任意单个字符
* : 匹配0个或多个前一个得到的字符
[] : 匹配任意一个[]内的字符,[ab]*可匹配空串、a、b、或者由任意个a和b组成的字符串。
^ : 匹配开头,如^s匹配以s或者S开头的字符串。
$ : 匹配结尾,如s$匹配以s结尾的字符串。
具体的使用就不详细写了,直接看官方文档好得多
https://dev.mysql.com/doc/refman/8.0/en/regexp.html