MySQL正则表达式:REGEXP 和 LIKE
正则表达式作用:
根据指定的匹配模式匹配文中符合要求的特殊字符。
REGEXP :
①操作符中常用的匹配列表:
②匹配特殊字符使用\\进行转义
- \\. 能够匹配 .
- \\f 换页
- \\n 换行
- \\r 回车
- \\t 制表
- \\ 纵向制表
③进行or匹配:搜索两个串之一(或者为这个串,或者为另一个串),使用 |。
LIKE有两个模式:
%:代表0个或多个任意字符;
_:表示单个字符;
REGEXP 和 LIKE 的区别:
LIKE匹配整个列。若是被匹配的文本仅在列值中出现,LIKE并不会找到它,相应的行也不会返回(使用通配符除外)。
REGEXP在列值内进行匹配,若是被匹配的匹配的文本在列值中出现,REGEXP将会找到它,相应的行将被返回。
例如:
products表:
LIKE:
REGEXP:
执行上述两条语句,会发现第一条语句不返回数据,而第二条语句返回一行。为什么?
LIKE匹配整个列。如果被匹配的文本在列值中出现,LIKE将不会找到它,相应的行也不被返回(除非使用通配符)。而REGEXP在列值内进行匹配,如果被匹配的文本在列值中出现,REGEXP将会找到它,相应的行将被返回。
《MySQL必知必会》:
为了匹配特殊字符,必须用\\为前导。\\-表示查找 -,\\. 表示查找 .