如果我有这样的设置:
set @idToIgnore = (select user_id from user_field_value where user_field_id = 82 and value = 'No';
然后我运行一个选择查询:
select id from users where account_id = 10 and id != @idToIgnore;
返回约 15 个不同的 ID 值。
然后我想运行一个查询,例如:
insert into user_field_value(user_id, user_field_id, value) values (**user_id**, 82, 'Yes');
最终插入查询中的 user_id 是第二个查询中的每个 ID。
我想有一种简单的方法可以做到这一点,但我想不出来。
最佳答案
为什么不在一个INSERT INTO ... SELECT ...
中完成呢?查询?
INSERT INTO user_field_value(user_id, user_field_id, value)
SELECT id, 82, 'Yes' FROM users
WHERE account_id = 10 and id != @idToIgnore;
您也可以使用子查询而不是 @idToIgnore
在一个查询中完成所有操作,但要注意性能问题。
关于mysql - 为选择查询的每个结果插入不同的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37181639/