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)
- 特殊字符转义:
\\* - 定位符
^ 文本的开始
$ 文本的结尾
[[:<:]] 词的开始
[[:>:]] 词的结尾
** ^的双重用途 **
在集合中(用[和]定义),用它 来否定该集合,否则,用来指串的开始处
本文对比了SQL中的通配符(如%和_)与正则表达式(如REGEXP)的功能及使用场景。介绍了通配符的基本用法,包括%匹配任意字符、_匹配单个字符等,并详细阐述了正则表达式的特性,例如使用|进行或匹配、[]匹配字符集等。同时,文章还讲解了如何利用特殊字符实现复杂的匹配需求。
574

被折叠的 条评论
为什么被折叠?



