介绍
通配符与正则表示的使用都是用来匹配一个字符串,可以用于匹配数据表中的某个字段的值,或者用于其它的SQL命令中的模糊查询。
通配符与正则表达式都将作为SQL中where
子句的内容,前者通过使用 LIKE
和 NOT LIKE
操作符,后者通过使用 REGEXP
和 NOT REGEXP
或者 RLIKE
和 NOT RLIKE
操作符。
演示数据
MySQL 标准的SQL模式匹配
使用
LIKE
和NOT LIKE
操作符
1. %
百分号通配符
- 表示任意多种字符且可以出现任意次数
演示1 :
查询animal
表中 en_name
字段中以 h
开头的记录
mysql> SELECT * FROM animal WHERE en_name LIKE 'h%';
+----+--------------+---------+
| id | en_name | ch_name |
+----+--------------+---------+
| 1 | horse | 马 |
| 2 | hippopotamus | 河马 |
+----+--------------+---------+
2 rows in set (0.00 sec)
演示2 :
查询animal
表中 en_name
字段中不以 h
开头的记录
mysql> SELECT * FROM animal WHERE en_name NOT LIKE 'h%';
+----+--------------+-----------+
| id | en_name | ch_name |
+----+--------------+-----------+
| 3 | pony | 矮马 |
| 4 | thoroughbred | 纯种马 |
| 5 | mule | 骡 |
| 6 | ox | 牛 |
| 7 | pig | 猪 |
| 8 | sheep | 羊 |
| 9 | deer | 鹿 |
| 10 | elephant | 象 |
| 11 | tomcat | 公猫 |
| 12 | squirrel | 松鼠 |
| 13 | mouse | 家鼠 |
+----+--------------+-----------+
11 rows in set (0.00 sec)
演示3 :
查询animal
表中 en_name
字段中以 t
结尾的记录