【发布时间】:2014-02-06 10:10:24
【问题描述】:
我有一个键值表,我需要从另一个表中为每个选定的id 插入多行。
-
我得到了用户 ID:
SELECT @id := id FROM user WHERE email = 'my@email.com'; -
我通过用户 ID 获取事物的 ID:
SELECT @things := id FROM `things` WHERE `owner_id` = @id; -
现在我需要为每个
@things插入多个值到键值表中。这里的问题是我不能使用选择子查询,因为我需要插入内联值,例如:INSERT INTO key_value (key, value) VALUES ( @things, 'CUSTOM VALUE 1' ), VALUES ( @things, 'CUSTOM VALUE 2' );
但是,它不起作用。最后一个查询显然是错误的。任何帮助将不胜感激。
编辑:
看起来我需要多个查询才能做到这一点:
SELECT @id := id FROM user WHERE email = 'startour@netron.no';
INSERT INTO key_value (`key`, `value`)
(
SELECT id, 'CUSTOM_VALUE_1'
FROM `things`
WHERE `owner_id` = @id
);
INSERT INTO key_value (`key`, `value`)
(
SELECT id, 'CUSTOM_VALUE_2'
FROM `things`
WHERE `owner_id` = @id
);
【问题讨论】:
-
这完全颠倒了。这有帮助吗?
-
是的,它有助于迁移数据库数据和结构。
标签: mysql