SQL通配符
SQL通配符必须与like操作符(当然还有not like操作符)一起使用。在SQL中,可用通配符:
| 通配符 | 描述 | 
|---|---|
| % | 替代一个或多个字符 | 
| _(下划线) | 仅替代一个字符(也可以是一个汉字) | 
| [charlist] | 字符列中的任何单一字符 | 
| [^charlist] 或者 [!charlist] | 不在字符列中的任何单一字符 | 
MySQL的支持
经过验证,我发现MySQL仅支持前两种通配符,不支持后两种通配符。下面有图为证:
这里所看教程:点我去W3School看教程啦!
那么到这里就结束了吗?当然不是!MySQL是那么优秀的数据库,它的模糊查询功能怎么会如此简单,只是我们使用的姿势不对罢了!
正确姿势
实际上,MySQL支持两种形式的模式匹配:①标准的SQL模式匹配;②类似编程语言中正则表达式模式匹配;
- SQL标准的模式匹配,就是上面说的四种了。只是单纯的使用like操作符语法,只是使用前两种而已;
 - 第二种模式匹配功能就比较强大了:
语法:操作符rlike 和 not rlike(或者regexp 和 not regexp)
可用通配符: 
| 通配符 | 描述 | 
|---|---|
| . | 匹配任意单个字符 | 
| ? | 匹配前面的子表达式0次或1次 | 
| + | 匹配前面的子表达式1次或多次 | 
| * | 匹配前面的子表达式0次或多次 | 
| ^ | 匹配开始位置 | 
| $ | 匹配结束位置 | 
| [] | 表示一个集合。[hi]表示匹配h或者i,[a-d]表示匹配a,b,c,d中任意一个 | 
| {} | 表示重复的次数。8{5}表示匹配5个8 | 
有了这些,我们便可以轻松的实现标准SQL模式匹配里面不支持的两种了:
不过要注意一点:这种类似正则表达式的模式匹配是严格区分大小写的!