mysql用逗号分割字符串

本文介绍了一个使用MySQL substring_index函数从逗号分隔的字符串中提取特定元素的问题解决方案。通过替换原有的help_topic表为自定义的帮助索引表,解决了远程数据库查询结果为空的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这是我的表结构,需要分割的就是KEY的值

 

采用的是mysql的substring_index函数:

  1. select
        a.ID,a.DOCTORID,
            substring_index(substring_index(a.`KEY`,',',b.help_topic_id+1),',',-1)  as key1
        from
            doctorarea a
        join
            mysql.help_topic b  on b.help_topic_id < (length(a.`KEY`) -     length(replace(a.`KEY`,',',''))+1)
    
  2. 我在我本地mysql数据库运行没有任何问题,但是放在项目中,调用远程数据库,结果永远是空。原因是sql里面用了mysql一个自带的临时表:help_topic,我本地里面是该表是有值的,但是发现远程数据库中该表是没有值,我把我表里面的数据,复制到远程数据库的 help_topic中再次运行,发现可以了。
  3. help_topic:一般为系统表,轻易不要修改,那么可以自己新建一个表,help_index,里面就一个字段help_index_id,只要保证这个表里面有较多数据,就可以了:那么上面代码可以换成下面这个:
select a.ID,a.DOCTORID, substring_index(substring_index(a.`KEY`,',',b.help_topic_id+1),',',-1) as key1 from doctorarea a join help_index b on b.help_index_id < (length(a.`KEY`) - length(replace(a.`KEY`,',',''))+1)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值