gpt4 book ai didi

php - 如何合并MySQL记录

转载 作者:行者123 更新时间:2023-11-29 10:38:14 25 4
gpt4 key购买 nike

我有一个如下所示的 MySQL 表:

id |   id_item      | 
1 | T0001 |
2 | T0002 |
2 | T0003 |
3 | T0004 |

我想像这样改变它:

id |    id_item           | 
1 | T0001,T0002 |
2 | T0001,T0003 |
2 | T0001,T0004 |
3 | T0002,T0003 |
4 | T0002,T0004 |
5 | T0003,T0004 |

我想保存在表item_2中,如下所示:

    id |   id_item      | 
1 | T0001 |
2 | T0002 |
3 | T0001 |
4 | T0003 |
5 | T0001 |
6 | T0004 |
7 | T0002 |
8 | T0003 |
9 | T0002 |
10 | T0004 |
11 | T0003 |
12 | T0004 |

有人知道如何使用 PHP 或 MySQL 来做到这一点吗?

最佳答案

您可以通过以下查询生成此输出:

SELECT
CONCAT(t1.id_item, ',', t2.id_item) AS id_item
FROM yourTable t1
INNER JOIN yourTable t2
WHERE
t2.id > t1.id
ORDER BY
t1.id,
t2.id

如果您想插入此数据,可以使用上面的选择在新表中执行INSERT INTO ... SELECT。我提到新表,因为将 CSV 和非 CSV 数据存储在同一列中可能没有多大意义。事实上,我一开始就不建议存储 CSV 数据。相反,如果您在表示层中需要它,只需使用类似于我上面给出的查询生成它即可。

此处演示:

Rextester

关于php - 如何合并MySQL记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46020113/

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