mysql 判断某字段值是否包含某特定字符串

今天遇到写功能时遇到一个问题,数据库中的字符串为list形式,多个字符串间逗号隔开

 假如此时需要查找该列中包含的‘SSDC1’字段的数据,理论上可以用如下函数

select * from xx where ssdc_code like "%SSDC1%";
select * from xx where locate('SSDC1', ssdc_code);
select * from xx where INSTR(ssdc_code,'SSDC1');

但是这样的函数查出来有一个问题,会将包含SSDC1的字段也查出来,例如'SSDC13'

 最终发现一个合适的函数是 

FIND_IN_SET(str,strlist)

其中str是需要截取的字符串,strlist是一个只能用英文逗号隔开的字符串列,非常适合用来实现上述功能

1

select * from xx where FIND_IN_SET('SSDC1',ssdc_code)

这样写选出来的ssdc_code中就只包含‘SSDC1’,不会出现包含‘SSDC13’的情况了

因为它判断的是两个逗号之前的字符串是否与给定字符串完全相匹配,不完全相匹配的字段不会被选中

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值