将数据从多行插入一行mysql

Posted

技术标签:

【中文标题】将数据从多行插入一行mysql【英文标题】:insert data from multiple rows to one row mysql 【发布时间】:2013-01-01 02:35:17 【问题描述】:

好的,事情就是这样。我需要使用 mysql 将表 A 中的一列中的多行插入表 B 中的一行

这是我试图实现的一个例子:

Table A
id | data
1  | name
2  | date
3  | more

从表 A 中,我需要选择数据列中的所有行并将该数据插入表 B 的“数据”列的一行中 像这样:

Table B 
id | data
1  | name, date, more

这是我当前的代码,但它不起作用并显示错误subquery returns more than one row

INSERT INTO B (data) values (SELECT data from A)

有什么办法可以做到吗?请原谅,因为我是新手:P

提前致谢!

【问题讨论】:

哦,那是“插入 B(数据)值(从 A 中选择数据)” 【参考方案1】:

使用GROUP_CONCAT函数

试试这个:

INSERT INTO B (data) 
SELECT GROUP_CONCAT(data) FROM A;

【讨论】:

哦,太好了,谢谢!还有一件事,如果我必须从表 A 的选定行中插入数据怎么办?例如,我想要从 A 到 B 的 id=1 或 id=2 行的数据列的值?提前致谢! 哦,这是我的 IT 教授给我解决的问题的一部分。 @user1987363:使用WHERE 条件。例如... FROM A WHERE A.id IN (1,2) @user1987363 不要忘记接受所有答案中的任何一个,无论你发现哪个对你有用

以上是关于将数据从多行插入一行mysql的主要内容,如果未能解决你的问题,请参考以下文章

使用 PHP 将多行 Oracle 结果集插入 MYSQL

使用选择插入多行

MySQL存储过程从列表中插入多行

MySQL插入数据

C#,将多行插入 SQL 数据库

从mysql 5.7中的变量将多行插入表中