更新在查询中传递的用户的状态

时间:2012-01-25 11:10:12

标签: sql sql-update

我有一个查询,它正在更新在其中传递的用户的状态。

update userinfo set status=1 where id in 
(select id from userinfo where name in ('viki','nik','mike'));

查询工作正常。 但问题是假设'nik'名称不存在于数据库中。 然后查询将不适用于'nik'之后的其余用户。 如何确保为每个更新查询运行?

提前致谢。

2 个答案:

答案 0 :(得分:1)

无论您的集合中的某个名称是否存在于userinfo表格中,它都可以使用。

ALSO :为什么要运行第二个查询以从您尝试更新的同一个表中获取ID列表?去吧:

UPDATE userinfo 
SET status = something
WHERE name IN ('viki','nik','mike');

答案 1 :(得分:1)

它会起作用。查询:

select id from userinfo where name in ('viki','nik','mike')
即使“'viki”不存在,

也会返回“mike”和“nik”的ID。

为什么你认为它不起作用?