mysql - 使用选定的数据执行多次插入

标签 mysql sql

我想执行此 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/

相关文章:

mysql - 强制先更新然后在程序中选择

mysql - 使用 mySql (phpMyAdmin) 创建一个从另一个表获取数据的表

mysql - 使用选择查询数据不能完全从字段中获取

sql - ADF LOOKUP 未更新所需的表

如果两个字符串共享任何字符,SQL 则返回 TRUE

php - 使用 explode() 删除

mysql - 创建索引优化慢查询

php - 当表示从 MySQL 数据库获取的 "money"属性时,在 PHP 中使用的正确格式是什么?

mysql - MySQL从错误1109到错误1242

mysql - MySQL更新中的顺序排名