mysql从头开始(6)

通配符过滤

LIKE操作符

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

百分号(%)通配符
mysql> select prod_id,prod_name from products where prod_name like 'jet%';
+---------+--------------+
| prod_id | prod_name    |
+---------+--------------+
| JP1000  | JetPack 1000 |
| JP2000  | JetPack 2000 |
+---------+--------------+
2 rows in set (0.04 sec)
mysql> select prod_id,prod_name from products where prod_name like '%anvil%';
+---------+--------------+
| prod_id | prod_name    |
+---------+--------------+
| ANV01   | .5 ton anvil |
| ANV02   | 1 ton anvil  |
| ANV03   | 2 ton anvil  |
+---------+--------------+
3 rows in set (0.00 sec)

以下sql可以搜索出s起头,e结尾的所有产品。

select prod_name from products where prod_name LIKE 's%e';

注意:虽然似乎%可以匹配任何东西,但是有一个例外NULL。like '%'也不能匹配用值NULL作为NULL作为
产品名的行。

下划线(_)通配符
mysql> select prod_id,prod_name from products where prod_name like '_ ton anvil';
+---------+-------------+
| prod_id | prod_name   |
+---------+-------------+
| ANV02   | 1 ton anvil |
| ANV03   | 2 ton anvil |
+---------+-------------+
2 rows in set (0.00 sec)

注意区分和以下情况

mysql> select prod_id,prod_name from products where prod_name like '% ton anvil';
+---------+--------------+
| prod_id | prod_name    |
+---------+--------------+
| ANV01   | .5 ton anvil |
| ANV02   | 1 ton anvil  |
| ANV03   | 2 ton anvil  |
+---------+--------------+
3 rows in set (0.00 sec)

注意:与%能匹配0个字符不一样,_总是匹配一个字符,不能多也不能少。

使用通配符技巧

  • 不要过分使用通配符,如果其他操作符能够达到相同的目的,应该使用其他操作符。
  • 在确实需要使用统配符时,除非绝对必要,否则不要把他们用在搜索模式的开始处,把通配符用在搜索
    的开始处,搜索会变慢。
  • 注意通配符位置,使用错误将不会反回想要的数据。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值