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字段逗号分隔内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MySQL设置管理员密码无法生效的问题解析

    MySQL设置管理员密码无法生效的问题解析

    这篇文章主要介绍了MySQL设置管理员密码无法生效的问题解析,一般在遇到 MySQL 问题时,建议对 MySQL 系统函数、数据库内部对象等进行检索而不是直接打印字符串,有时候可能对快速定位问题原因有帮助,需要的朋友可以参考下
    2022-06-06
  • MySQL InnoDB表空间加密示例详解

    MySQL InnoDB表空间加密示例详解

    这篇文章主要给大家介绍了关于MySQL InnoDB表空间加密的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用MySQL具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2020-08-08
  • mysql binlog如何恢复数据到某一时刻

    mysql binlog如何恢复数据到某一时刻

    这篇文章主要介绍了mysql binlog如何恢复数据到某一时刻问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • MySQL实时监控工具orztop的使用介绍

    MySQL实时监控工具orztop的使用介绍

    这篇文章主要给大家介绍了MySQL实时监控工具orztop的使用,文中给出了详细的介绍,相信对大家的学习具有一定的参考借鉴价值,有需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-01-01
  • 浅谈MySQL数据库的备份与恢复

    浅谈MySQL数据库的备份与恢复

    MYSQL数据库的备份、恢复等是每一位信息管理人员应必备的能力,因此掌握MYSQL数据库管理的技巧会使您的工作事半功倍,这里我们来简单总结下。
    2017-01-01
  • mysql外键(Foreign Key)介绍和创建外键的方法

    mysql外键(Foreign Key)介绍和创建外键的方法

    这篇文章主要介绍了mysql外键(Foreign Key)命令和添加外键方法,需要的朋友可以参考下
    2014-02-02
  • MySQL中导出用户权限设置的脚本分享

    MySQL中导出用户权限设置的脚本分享

    这篇文章主要介绍了MySQL中导出用户权限设置的脚本分享,本文通过导出mysql.user表中数据实现导出权限设置,需要的朋友可以参考下
    2014-10-10
  • 浅析SQL语句行列转换的两种方法 case...when与pivot函数的应用

    浅析SQL语句行列转换的两种方法 case...when与pivot函数的应用

    SQL语句行列转换的两种方法 case...when和pivot函数应用,运用pivot 函数只支持数据库版本2005以上的。一般运用case when else end 的方法比较多,比较普遍
    2013-08-08
  • MySQL查询截取的深入分析

    MySQL查询截取的深入分析

    这篇文章主要给大家介绍了关于MySQL查询截取的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • MySql insert插入操作的3个小技巧分享

    MySql insert插入操作的3个小技巧分享

    这篇文章主要介绍了MySql insert插入操作的3个小技巧分享,本文讲解了插入的数据来源自其他表、插入时排除(忽略)重复记录、插入时遇到重复记录做更新操作三个小技巧,需要的朋友可以参考下
    2015-03-03

最新评论