gpt4 book ai didi

php - 通过 MySQL 查询插入逗号分隔值

转载 作者:可可西里 更新时间:2023-11-01 07:23:08 27 4
gpt4 key购买 nike

我有一个表(在 phpmyadmin 中)具有以下字段和结构:

Table 1
id | sponsor
1 | -1
2 | 1
3 | 1
4 | 2
5 | 4
6 | 4

现在我想将上表中的数据插入到新表中,如下所示:

Table 2
id | children
1 | 2,3
2 | 4
3 |
4 | 5,6
5 |
6 |

其实这是树结构,我已经保存在mysql数据库中了。
我已经用 php 编写了一个脚本,但是由于表 1 中有超过 100K 行,所以它花费了太多时间。请告诉我一个高效的 sql 查询来快速完成这个任务。

最佳答案

查询:

SQLFIDDLE Example

SELECT 
t1.id,
(SELECT group_concat(id separator ', ')
FROM table1 t2
WHERE t2.sponsor = t1.id) AS children
FROM table1 t1
GROUP BY t1.id

结果:

| ID | CHILDREN |
-----------------
| 1 | 2, 3 |
| 2 | 4 |
| 3 | (null) |
| 4 | 5, 6 |
| 5 | (null) |
| 6 | (null) |

插入语句:

INSERT INTO table2
SELECT
t1.id,
(SELECT group_concat(id separator ', ')
FROM table1 t2
WHERE t2.sponsor = t1.id) AS children
FROM table1 t1
GROUP BY t1.id

关于php - 通过 MySQL 查询插入逗号分隔值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13377911/

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