LIKE操作符与通配符
用来匹配值的一部分的特殊字符,叫做通配符,通配符搜索只能用于文本字段。
如果需要在WHERE子句中使用通配符,必须使用LIKE操作符。
百分号(%)通配符
百分号(%)表示任何字符出现任意次数(包括0个字符)。
Email表:
+----+------+----------------------+
| id | name | email |
+----+------+----------------------+
| 1 | 张三 | zhangsan@example.com |
| 2 | 李四 | lisi@example.com |
| 3 | 王五 | wangwu@example.com |
| 4 | 小明 | 111222@qq.com |
| 5 | 小红 | 333444@qq.com |
+----+------+----------------------+
匹配以lisi开头的值:
SELECT name,email FROM Email WHERE email LIKE 'lisi%';
+------+------------------+
| name | email |
+------+------------------+
| 李四 | lisi@example.com |
+------+------------------+
匹配任何位置上包含文本@qq的值:
SELECT name,email FROM Email WHERE email LIKE '%@qq%';
+------+-----------------+
| name | email |
+------+-----------------+
| 小明 | 111222@qq.com |
| 小红 | 333444@qq.com |
+------+-----------------+
匹配以zhangsan开头、以com结尾的值:
SELECT name,email FROM Email WHERE email LIKE 'zhangsan%com';
+------+----------------------+
| name | email |
+------+----------------------+
| 张三 | zhangsan@example.com |
+------+----------------------+
下划线(_)通配符
下划线(_)的用途与%一样,但它只匹配单个字符,一个下划线代表一个字符。
SELECT name,email FROM Email WHERE name LIKE '张_';
+------+----------------------+
| name | email |
+------+----------------------+
| 张三 | zhangsan@example.com |
+------+----------------------+