mysql 将含有逗号的string 字符串 分割(行转列)

直接上代码:

分割(行转列)并去重

SELECT distinct  id,
       SUBSTRING_INDEX(SUBSTRING_INDEX(contract_email, ',', n), ',', -1) AS item
FROM `product`.supplier_service_metadata ,
     (SELECT @rownum := @rownum + 1 AS n
      FROM (SELECT @rownum := 0) r,
           `product`.supplier_service_metadata) x
WHERE n <= (LENGTH(contract_email) - LENGTH(REPLACE(contract_email, ',', '')) + 1)

再根据id不同 重新整合到一条数据

select id, GROUP_CONCAT(item) as emails from (
SELECT distinct  id,
       SUBSTRING_INDEX(SUBSTRING_INDEX(contract_email, ',', n), ',', -1) AS item
FROM `product`.supplier_service_metadata ,
     (SELECT @rownum := @rownum + 1 AS n
      FROM (SELECT @rownum := 0) r,
           `product`.supplier_service_metadata) x
WHERE n <= (LENGTH(contract_email) - LENGTH(REPLACE(contract_email, ',', '')) + 1)
)A
group by id
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值