sql必知必会笔记使用通配符过滤数据
like操作符
通配符(wildcard):
用来匹配值的一部分的特殊字符。
百分号(%)通配符
最常使用的通配符是百分号(%)。在搜索串中,%表示任何字符出现任意次数:
select prod_id, prod_name from products where prod_name like 'fish%';
下划线(_)通配符
只匹配单个字符,而不是多个字符,下面的示例有两个_通配符:
select prod_id, prod_name from products where prod_name like '__ inch teddy bear';
方括号([])通配符
方括号([])通配符(只有access 和sql server支持)用来指定一个字符集,它必须匹配指定位置(通配符的位置)的一个字符:
--找出所有名字以j 或m 起头的联系人 from customers where cust_contact like '[jm]%' order by cust_contact;
^脱字号
用于否定集合,在使用多个where子句时可以简化语法:
--匹配不以j 或m 起头的任意联系人名 select cust_contact from customers where cust_contact like '[^jm]%' order by cust_contact;
使用通配符注意事项
由于通配符搜索一般比其他搜索要耗费更长的处理时间,所有使用时需要注意:
不要过度使用通配符。如果其他操作符能达到相同的目的应该使用其他操作符。
在确实需要使用通配符时,也尽量不要把它们用在搜索模式的开始处。把通配符置于开始处,搜索起来是最慢的。
仔细注意通配符的位置。如果放错地方,可能不会返回想要的数据。