如果我有如下设置:
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。
我认为有一种简单的方法可以做到这一点,但我无法弄清楚。
答案 0 :(得分:3)
为什么不在一个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
在一个查询中执行整个操作,但在性能方面要小心。