用来匹配值的一部分的特殊字符,叫做通配符,通配符搜索只能用于文本字段。
如果需要在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 | +------+----------------------+