like
通配符
- 百分号(%)通配符:%表示任何字符 出现任意次数
- 下划线(_)通配符:_匹配单个字符
技巧
- 在其他操作符能达到相同目的时,不要过度使用通配符
- 尽量不要把通配符放到搜索模式的开始处
regexp
like VS regexp
LIKE匹配整个列。如果被匹配的文本在列值 出现,LIKE将不会找到它,相应的行也不被返回(除非使用通配符)。
REGEXP在列值内进行匹配,如果被匹配的文本在 列值中出现,REGEXP将会找到它,相应的行将被返回
-
or匹配:| eg
where col regexp 'a|b|c'
-
匹配几个字符之一:[] eg
where col regexp '[abc]'
或where col regexp '[a|b|c]'
-
匹配范围:匹配任意数字
where col regexp [0-9]
匹配任意字母where col regexp [a-z]
-
匹配字符类:
[:alnum:] 任意字母和数字(同[a-zA-Z0-9])
[:alpha:] 任意字符(同[a-zA-Z])
[:blank:] 空格和制表(同[\\t])
[:digit:] 任意数字(同[0-9])
[:lower:] 任意小写字母(同[a-z])
[:upper:] 任意大写字母(同[A-Z])
- 匹配多个实例
* 0个或多个匹配
+ 1个或多个匹配(等于{1,})
? 0个或1个匹配(等于{0,1}) {n} 指定数目的匹配
{n,} 不少于指定数目的匹配
{n,m} 匹配数目的范围(m不超过255)
- 特殊字符转义:
\\*
- 定位符
^ 文本的开始
$ 文本的结尾
[[:<:]] 词的开始
[[:>:]] 词的结尾
** ^的双重用途 **
在集合中(用[和]定义),用它 来否定该集合,否则,用来指串的开始处