MySQL将一个字段中以逗号分隔的取出来形成新的字段实现

 更新时间:2020年10月28日 10:27:03   作者:旧夏潜入梦  
这篇文章主要介绍了MySQL将一个字段中以逗号分隔的取出来形成新的字段实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

1例如:要把如图1的字段拆分图2

select account_id,
    substring_index(substring_index(a.related_shop_ids,','
    ,b.help_topic_id+1),',',-1) shopid
  from 
    sales_hang_account a
  join
    mysql.help_topic b
    on b.help_topic_id < (length(a.related_shop_ids) -   length(replace(a.related_shop_ids,',',''))+1) 
  order by a.account_id

2:然后和shops表进行连接查询取出我们需要的字段,我这里需要取出name

select s.`name` as shopname,a.account_id from shops s
inner JOIN (

select account_id,
    substring_index(substring_index(a.related_shop_ids,','
    ,b.help_topic_id+1),',',-1) shopid
  from 
    sales_hang_account a
  join
    mysql.help_topic b
    on b.help_topic_id < (length(a.related_shop_ids) -   length(replace(a.related_shop_ids,',',''))+1) 
  order by a.account_id)a on s.shop_id=a.shopid

3:将 account_id相同合并成一行,以逗号隔开

//这两个是网上的例子
select ID,group_concat(NAME) as NAME from table group by ID;

select ID,group_concat(NAME SEPARATOR ';') as NAME from a group by ID;
//借助上面两个参考
select account_id,GROUP_CONCAT(shopname SEPARATOR',')as shopname from (select s.`name` as shopname,a.account_id from shops s
inner JOIN (

select account_id,
    substring_index(substring_index(a.related_shop_ids,','
    ,b.help_topic_id+1),',',-1) shopid
  from 
    sales_hang_account a
  join
    mysql.help_topic b
    on b.help_topic_id < (length(a.related_shop_ids) -   length(replace(a.related_shop_ids,',',''))+1) 
  order by a.account_id)a on s.shop_id=a.shopid) a GROUP BY account_id

效果如下

第二种方法

select g.account_id,g.related_shop_ids,GROUP_CONCAT(s.name)as shopname from sales_hang_account g left join shops s on FIND_IN_SET(s.shop_id , g.related_shop_ids)
GROUP BY g.account_id

SqlServer

 [Product] -- 该字段存储格式为 7,8,9,11,10,12 ,数据类型为nvarchar
select id,ProductName=stuff((select ',' + product_chinaname from base_supplier_product where charindex(','+ltrim(productid)+',',','+ Product + ',') > 0 for xml path('') ), 1, 1, '')
 FROM base_Pre_sale_project

结果

到此这篇关于MySQL将一个字段中以逗号分隔的取出来形成新的字段实现的文章就介绍到这了,更多相关MySQL字段逗号分隔内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Mongodb中关于GUID的显示问题详析

    Mongodb中关于GUID的显示问题详析

    这篇文章主要给大家介绍了关于Mongodb中GUID的显示问题,文中通过示例代码介绍的非常详细,对大家学习或者使用Mongodb具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2020-05-05
  • MySQL手动注册binlog文件造成主从异常的原因

    MySQL手动注册binlog文件造成主从异常的原因

    这篇文章主要介绍了MySQL手动注册binlog文件造成主从异常的原因,帮助大家更好的理解和使用MySQL数据库,感兴趣的朋友可以了解下
    2020-10-10
  • MySQL中用户授权以及删除授权的方法

    MySQL中用户授权以及删除授权的方法

    这篇文章主要介绍了MySQL中用户授权以及删除授权的方法的相关资料,需要的朋友可以参考下
    2015-12-12
  • Mysql中FIND_IN_SET函数的使用及问题

    Mysql中FIND_IN_SET函数的使用及问题

    FIND_IN_SET函数用于返回字符串str在字符串列表str_list中的位置,本文主要介绍了Mysql中FIND_IN_SET函数的使用及问题,具有一定的参考价值,感兴趣的可以了解一下
    2024-07-07
  • MySQL性能监控软件Nagios的安装及配置教程

    MySQL性能监控软件Nagios的安装及配置教程

    这篇文章主要介绍了MySQL性能监控软件Nagios的安装及配置教程,这里以CentOS操作系统为环境进行演示,需要的朋友可以参考下
    2015-12-12
  • mysql启动提示:错误2系统找不到指定文件的解决方案

    mysql启动提示:错误2系统找不到指定文件的解决方案

    这篇文章主要给大家介绍了mysql启动提示:错误2系统找不到指定文件的解决方案,文中通过图文结合的方式给大家讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2024-02-02
  • MySQL索引之主键索引

    MySQL索引之主键索引

    在MySQL里,主键索引和辅助索引分别是什么意思,有什么区别?上次的分享我们介绍了聚集索引和非聚集索引的区别,本次我们继续介绍主键索引和辅助索引的区别
    2015-12-12
  • 有关mysql优化的一些东东整理

    有关mysql优化的一些东东整理

    有关mysql优化的一些东东,自己整理的,网上搜集的,供朋友们学习参考吧
    2013-02-02
  • MySQL 两张表数据合并的实现

    MySQL 两张表数据合并的实现

    本文主要介绍了MySQL 两张表数据合并的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • MYSQL 关于两个经纬度之间的距离由近及远排序

    MYSQL 关于两个经纬度之间的距离由近及远排序

    本篇文章是对MYSQL中关于两个经纬度之间的距离由近及远排序的方法进行了详细的分析介绍,需要的朋友参考下
    2013-07-07

最新评论