我必须进行多次插入,但所有这些新记录都将具有从其他表之一检索的相同字段:
INSERT INTO `user` (`id`, `name`, `surname`, `retrieved`) VALUES
(null, "A", "A", SELECT id from user_records where id = 1),
(null, "B", "B", SELECT id from user_records where id = 1),
(null, "C", "C", SELECT id from user_records where id = 1)...
如何插入此选择结果而不执行每个记录?
谢谢
最佳答案
您应该为此使用变量:
SET @VAR := SELECT id
FROM user_records
WHERE id = 1;
INSERT INTO `user` (`id`, `name`, `surname`, `retrieved`)
VALUES
(null, "A", "A", @VAR),
(null, "B", "B", @VAR),
(null, "C", "C", @VAR)...
或
SELECT id INTO @VAR
FROM user_records
WHERE id = 1;
INSERT INTO `user` (`id`, `name`, `surname`, `retrieved`)
VALUES
(null, "A", "A", @VAR),
(null, "B", "B", @VAR),
(null, "C", "C", @VAR)...
关于mysql - 多行插入语句包含相同的选择字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21855166/