gpt4 book ai didi

mysql - SQL 将值拆分为多行

转载 作者:行者123 更新时间:2023-11-30 22:56:09 25 4
gpt4 key购买 nike

我有 table :

id | name    
1 | a,b,c
2 | b

我想要这样的输出:

id | name    
1 | a
1 | b
1 | c
2 | b

最佳答案

如果您可以创建一个数字表,其中包含从 1 到要拆分的最大字段的数字,您可以使用如下解决方案:

select
tablename.id,
SUBSTRING_INDEX(SUBSTRING_INDEX(tablename.name, ',', numbers.n), ',', -1) name
from
numbers inner join tablename
on CHAR_LENGTH(tablename.name)
-CHAR_LENGTH(REPLACE(tablename.name, ',', ''))>=numbers.n-1
order by
id, n

请参阅 fiddle here .

如果无法创建表,那么解决方案可以是:

select
tablename.id,
SUBSTRING_INDEX(SUBSTRING_INDEX(tablename.name, ',', numbers.n), ',', -1) name
from
(select 1 n union all
select 2 union all select 3 union all
select 4 union all select 5) numbers INNER JOIN tablename
on CHAR_LENGTH(tablename.name)
-CHAR_LENGTH(REPLACE(tablename.name, ',', ''))>=numbers.n-1
order by
id, n

一个例子是 here .

关于mysql - SQL 将值拆分为多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26316258/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com