SQL学习06——用通配符进行过滤
Posted xingweikun
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL学习06——用通配符进行过滤相关的知识,希望对你有一定的参考价值。
LIKE操作符
百分号(%)通配符
找出所有以词Fish起头的产品,区分大小写。
写成fish则不会返回Fish的结果
mysql> select * from products where prod_name like 'Fish%';
+---------+-------------------+------------+
| prod_id | prod_name | prod_price |
+---------+-------------------+------------+
| BNBG01 | Fish bean bag toy | 3.49 |
+---------+-------------------+------------+
说明:
如果你使用的是Microsoft Access
,需要使用*
而不是%
。
通配符可以在搜索模式的任意位置使用
'%bean bag%'
表示匹配任何位置上包含文本bean bag
的值、
mysql> select * from products where prod_name like '%bean bag%';
+---------+---------------------+------------+
| prod_id | prod_name | prod_price |
+---------+---------------------+------------+
| BNBG01 | Fish bean bag toy | 3.49 |
| BNBG02 | Bird bean bag toy | 3.49 |
| BNBG03 | Rabbit bean bag toy | 3.49 |
+---------+---------------------+------------+
找出以F开头以y结尾的所有产品
如果最后一个字符可能是空格则使用'F%y%'
mysql> select * from products where prod_name like 'F%y';
+---------+-------------------+------------+
| prod_id | prod_name | prod_price |
+---------+-------------------+------------+
| BNBG01 | Fish bean bag toy | 3.49 |
+---------+-------------------+------------+
根据部分信息搜索电子邮件地址
例如
where email like 'b%@xxx.com'
where prod_name like '%'
不会匹配产品名称为NULL的行。
下划线(_)通配符
下划线_
的用途和%
一样。但它只匹配单个字符,而不是多个字符。
说明:
DB2不支持通配符_
如果你使用的是Microsoft Access
,需要使用?
而不是_
。
一个下划线
mysql> select * from products where prod_name like '_ inch teddy bear';
+---------+-------------------+------------+
| prod_id | prod_name | prod_price |
+---------+-------------------+------------+
| BR01 | 8 inch teddy bear | 5.99 |
+---------+-------------------+------------+
两个下划线
mysql> select * from products where prod_name like '__ inch teddy bear';
+---------+--------------------+------------+
| prod_id | prod_name | prod_price |
+---------+--------------------+------------+
| BR02 | 12 inch teddy bear | 8.99 |
| BR03 | 18 inch teddy bear | 11.99 |
+---------+--------------------+------------+
对比使用%
mysql> select * from products where prod_name like '% inch teddy bear';
+---------+--------------------+------------+
| prod_id | prod_name | prod_price |
+---------+--------------------+------------+
| BR01 | 8 inch teddy bear | 5.99 |
| BR02 | 12 inch teddy bear | 8.99 |
| BR03 | 18 inch teddy bear | 11.99 |
+---------+--------------------+------------+
方括号([]
)通配符
方括号[]通配符用来指定一个字符集,它必须匹配指定位置的一个字符。
并不是总支持集合
并不是所有的DBMS都支持用来创建集合的[],只有微软的Access和SQL Server支持集合。
由于我使用的是MySQL,所以这个用不了,就不再描述。
使用通配符的技巧
不要过度使用通配符。如果其他操作符能达到相同的目的,应该使用其他操作符。
在确实需要使用通配符时,也尽量不要把它们用在搜索模式的开始处。把通配符置于开始处,搜索起来是最慢的。
仔细注意通配符的位置。如果放错地方,可能不会返回想要的数据
以上是关于SQL学习06——用通配符进行过滤的主要内容,如果未能解决你的问题,请参考以下文章