例如,我想使用 select 进行插入,然后为每个子查询的返回值插入多行
INSERT INTO t1 (column1, column2, column3)
SELECT column1_value,5,10 FROM t2;
将为每行的 column2 插入 5,为第三列的每行插入 10。无论如何,我可以在此处传递多个值以在第 2 列中获得一行 5,另一行从 t2 的选择中获得每条记录 7 吗?
最佳答案
使用UNION
INSERT INTO t1 (column1, column2, column3)
SELECT column1_value, 5, 10 FROM t2
UNION ALL
SELECT column1_value, 5, 7 FROM t2
你也可以加入UNION
INSERT INTO t1 (column1, column2, column3)
SELECT t2.column1_value, 5, t3.column3_value
FROM t2
CROSS JOIN (SELECT 10 AS column3_value
UNION
SELECT 7 AS column3_value) AS t3
关于mysql - 在mysql中为每个子查询插入多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39665665/