[英]how to convert comma separated string to single column?
表:
id brand group
1 adidas 1,2
2 puma 1
3 asianone 1,2,3
我想要什么結果:
id brand group
1 adidias 1
2 adidias 2
3 puma 1
4 asianone 1
5 asianone 2
6 asianone 3
id是自動遞增的。
SELECT @id:=@id+1 AS id,
`brand`,
`group`
FROM
(SELECT
`id`,
`brand`,
SUBSTRING_INDEX(SUBSTRING_INDEX(`group`, ',', n.digit+1), ',', -1) AS `group`
FROM
Table1
INNER JOIN
(SELECT 0 AS digit
UNION ALL SELECT 1
UNION ALL SELECT 2
UNION ALL SELECT 3
UNION ALL SELECT 4
UNION ALL SELECT 5
UNION ALL SELECT 6) n
ON LENGTH(REPLACE(`group`, ',' , '')) <= LENGTH(`group`)-n.digit
Order by ID,`group`) AS T,(SELECT @id:=0) AS R;
產量
id brand group
1 adidas 1
2 adidas 2
3 puma 1
4 asianone 1
5 asianone 2
6 asianone 3
演示
對於解釋轉到此鏈接並檢查我的答案
select
brandstable.id,
brandstable.brand,
SUBSTRING_INDEX(SUBSTRING_INDEX( brandstable.`groupname`, ',', numbers.n), ',', -1) `groupname`
from
(select 1 n union all
select 2 union all select 3 union all
select 4 union all select 5) numbers INNER JOIN brandstable
on CHAR_LENGTH(brandstable.groupname)
-CHAR_LENGTH(REPLACE(brandstable.groupname, ',', ''))>=numbers.n-1
order by
id, n
replace your tablename with brandstable.
請使用PHP explode()函數,它可以將字符串分成數組。
語法:'explode(separator,string,limit);'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.