我想执行此 sudo 查询:
INSERT INTO table1 (foreign_key, meta_key, meta_value)
VALUES (
(SELECT id FROM table2 WHERE condition = 'met'), 'first meta key', 'first meta value'
)
VALUES (
(SELECT id FROM table2 WHERE condition = 'met'), 'second meta key', 'second meta value'
)
VALUES (
(SELECT id FROM table2 WHERE condition = 'met'), 'third meta key', 'third meta value'
)
其中 SELECT
语句后面的字符串是 INSERT
的第二个和第三个参数
我认为我的 INSERT SELECT
语法基本上是正确的,但我不确定多个INSERTS
。我知道我可以使用普通的 INSERT
语句来做到这一点,但我不确定 SELECT
是否位于 VALUES
子句中。
我正在使用实时数据库,尽管我已经备份了所有内容,但我希望将直接实验保持在最低限度。
最佳答案
您可以使用 UNION:
INSERT INTO table1 (foreign_key, meta_key, meta_value)
SELECT id, 'first meta key', 'first meta value' FROM table2 WHERE condition = 'met'
UNION
SELECT id, 'second meta key', 'second meta value' FROM table2 WHERE condition = 'met'
UNION
SELECT id, 'third meta key', 'third meta value' FROM table2 WHERE condition = 'met'
关于mysql - 使用选定的数据执行多次插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26177367/