SQL必知必会 第6课 用通配符进行过滤

6.1 LIKE 操作符

之前介绍的操作符都是针对已知值进行过滤的。但这种方法并不是任何时候都好用。例如,怎样搜索产品名中包含文本bean bag的所有产品?用简单的比较操作符肯定不行,必须使用通配符。

通配符: 用来匹配值的一部分的特殊字符。
搜索模式: 由字面值、通配符或两者组合构成的搜索条件。

百分号 (%)通配符

最常使用的通配符为百分号 (%)。在搜索串中,%表示任何字符出现任意次数。

SELECT prod_id, prod_name
FROM products
where prod_name like 'Fish%';

找到所有以词Fish开头的产品
在这里插入图片描述
通配符可在搜索模式中的任意位置使用,并且可使用多个通配符。

SELECT prod_id, prod_name
FROM products
where prod_name like '%bean bag%';

在这里插入图片描述
%除了能够匹配一个或多个字符外,还能匹配0个字符。

下划线 (_) 通配符

下划线的用途和%一样,但它只匹配单个字符,而不是多个字符。

SELECT prod_id, prod_name
FROM products
where prod_name like '__ inch teddy bear';

在这里插入图片描述

方括号 ([]) 通配符

方括号通配符用来指定一个字符集,它必须匹配指定位置(通配符的位置)的一个字符。

找出所有名字以J或M起头的联系人:

SELECT cust_contact
FROM customers
where cust_contact like '[JM]%'
ORDER BY cust_contact;

注意这个通配符[]并非所有DBMS都支持,MySQL,Oracle,DB2,SQLite都不支持。

6.2 使用通配符的技巧

通配符是非常有用的,但同时也是有代价的,即通配符搜索一般要比前面讨论的其他搜索要耗费更长的处理时间。因此有一些使用通配符的技巧。

  • 不要过分使用通配符。
  • 尽量不要将通配符用在搜索模式的开始处。
  • 仔细注意通配符的位置。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值