通配符:
- WHERE子句中用于筛选
- 用来匹配值的一部分的特殊字符
- 通配符只能用于文本字段(字符串),不能用于非文本数据类型的数据
- 使用通配符时,必须使用LIKE操作符
1. 百分号(%)通配符
%表示任何字符出现任意次数
- 比方说,想要表中找名字以jet开头的产品的产品id和产品名称,用’jet%'表示
SELECT prod_id, prod_name FROM products WHERE prod-name LIKE 'jet%';
- 可以搜索任意位置出现特定字符的,比如说找名字中包含文本anvi的产品的产品id和产品名称
’%anvil%'表示匹配任何位置包含文本anvil的值,而不论它之前或之后出现什么字符
SELECT prod_id, prod_name FROM products WHERE prod_name LIKE '%anvi1%';
显示结果如下
- 还可以搜索特定开头和特定结尾
例如:找出以s起头以e结尾的所有产品 ,用 's%e’表示
SELECT prod_nameFROM productsWHERE prod name LIKE 's%e';
注意:%通配符不能匹配NULL值。
2. 下划线(_)通配符
下划线的用途与%一样,但下划线只匹配单个字符而不是多个字符 。用下面两个例子来查看下划线和%的差别:
SELECT prod_id, prod_name FROM products WHERE prod_name LIKE '_ton anvil';
第一行中下划线匹配1,第二行中匹配2。 .5 ton anvil产品没有匹配,因为搜索模式要求匹配1个通配符。对照一下,下面的SELECT语句使用%通配符,返回三行产品 :
SELECT prod_id, prod_name FROM products WHERE prod-name LIKE '% ton anvil';
总结:%能匹配0个,1个字符或者多个通配符, _总是匹配一个字符,不能多也不能少
使用通配符的技巧和要点
通
- 配符搜索的处理一般要比前面讨论的其他搜索所花时间更长。 所以不要过度使用通配符。如果其他操作符能达到相同的目的,应该使用其他操作符。
在确实需要使用通配符时,除非绝对有必要,否则不要把它们用
在搜索模式的开始处。把通配符置于搜索模式的开始处,搜索起
来是最慢的。
仔细注意通配符的位置。如果放错地方,可能不会返回想要的数 据 。