MySQL查询中通配符的使用

  • 通配符可用于替代字符串中的任何其他字符
  • 在SQL模式下,通配符常常与 LIKE 与 NOT LIKE 一起使用
  • 在 LIKE 语句中,like 某个确定的值,和 where name= 某个确定的值是一样的,例如:
select * from a where name like 'exp_asd_10_123';
select * from a where name = 'exp_asd_10_123';

下图是选自 “a” 表的数据:

在这里插入图片描述

1、% 通配符的使用

% 通配符:可替代 0 个或多个字符

  1. 在 a 表中,查询 name 的值等于exp_asd_10_123的数据
select * from a where name like 'exp_asd_10_123'

查询结果:

在这里插入图片描述

  1. 在 a 表中,查询 name 的值包含有esp的数据
select * from a where name like '%esp%'

查询结果:

在这里插入图片描述

  1. 在 a 表中,查询 name 的值以exp开头的数据
select * from a where name like 'exp%'

查询结果:

在这里插入图片描述

  1. 在 a 表中,查询 name 的值以456结尾的数据
select * from a where name like '%456'

查询结果:

在这里插入图片描述

2、_ 通配符的使用

_ 通配符:可替代一个字符

  1. 在 a 表中,查询 name 的值以nxp开头的数据(n:为任意字符)
select * from a where name like '_xp%'

查询结果:

在这里插入图片描述

3、使用通配符时易忽略的一个问题

以上述 a 表为例:

在这里插入图片描述

当我们要查询以exp_asd_10_开头的数据时,sql语句应该如何去写?

select * from a where name like 'exp_asd_10_%'

查询结果:

在这里插入图片描述

很自信的执行了这条sql语句,你会发现结果并不是自己所预期的那样,执行上面的sql语句会把所有的以exp_asd_10开头的数据都查找到

原因:

在sql中,下划线_也是一个通配符,能匹配任意一个字符,像上面那样写的话。

正确的写法应该是:

select * from a where name like 'exp\_asd\_10\_%'

_通配符前面加上转义字符\,这样mysql就会把下划线通配符视为普通字符

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值