vue 类型字段除了用select框_6.用通配符进行过滤

我们用来示例的表叫 PRODUCTS。

7b9205a09317d6654e24e5969c1e22c1.png

我们之前的搜索,都是建立在去和一个已知的值进行匹配的,比如价格大于 2,或者名称等于 aaa 之类的,那假如我们要实现检索出产品名称中包含 abc 的产品,这个时候就需要使用通配符了。

通配符只能用于文本字段,非文本字段不能使用通配符搜索。

百分号通配符

select * from PRODUCTS where PROD_NAME like 'Fish%';

% 表示任何字符出现任意次数(包括 0 个字符),这里我们就实现了找出所有以 fish 开头的产品名称。

通配符可以在任意位置中使用,且可以写多个。

select * from PRODUCTS where PROD_NAME like '%bean bag%'; 

这句 SQL 就表示只要 PROD_NAME 包含「bean bag」,无论前后是有任何字符,还是没有字符,都会被检索出来。

(注:如果某列的数据类型是 50 个字符,而实际存储的文本不满 50 个字符,有些 DBMS 会用空格填补内容,那如果你写了一个 'g%d' 的字面量,表示匹配以 g 开头的,以 d 结尾的内容,在这种情况下可能不会工作,因为实际内容变成以空格结尾了,所以可以考虑改写为 'g%d%')

下划线通配符

% 类似,但是它只匹配一个字符,这个字符必须存在,不能为空。

select * from PRODUCTS where PROD_NAME like '_ish bean bag toy';

可以匹配到 PROD_NUM = 'Fish bean bag toy' 这条数据,但如果这样写,就匹配不到了:

select * from PRODUCTS where PROD_NAME like '_Fish bean bag toy';

方括号通配符

和下划线通配符类似,也是要匹配到一个字符,不过有些 DBMS 不支持。

select * from PRODUCTS where PROD_NAME like '[AB]ish bean bag toy';

方括号中表示这个字符的字符集,也可以用 [^AB] 来表示否定,即这个位置是要以除了 A、B 两个字符以外的字符。

通配符使用提示

由于通配符的搜索要比之前那些搜索的方式要慢,所以如果有其他操作符可以达到相同的目的的话,尽量避免使用通配符。如果真的要使用,也尽量不要以通配符开头,因为通配符开头的搜索是最慢的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值