UPDATE IF EXISTS错误

时间:2012-09-15 09:21:24

标签: mysql sql

如果用户表中存在userid,我会尝试更新表人员中的值(级别) 在表格中

  IF EXISTS (SELECT userid FROM users)
  UPDATE people SET level='1'

我错过了什么!得到错误?

3 个答案:

答案 0 :(得分:6)

从您的评论“我需要更新级别列,如果两个表中的用户ID都存在值1”,您似乎需要这样:

update people set level=1 where exists (
    select * from users where users.userid=people.userid
);

答案 1 :(得分:2)

您无需进行选择。您所需要的只是:

UPDATE people SET level='1' WHERE userid IS NOT NULL

BTW,你在运行什么数据库?

UPD。抱歉,我错过了你有两张桌子的事实。我建议你做一些类似的事情:

UPDATE people SET level='1' WHERE EXISTS (SELECT * FROM users WHERE 
users.userid = people.userid)

此外,UPDATE可以使用JOIN完成,但这取决于您使用的数据库。

答案 2 :(得分:0)

使用MySQL,“UPDATE”上的“EXISTS”条款根本不起作用。

改为使用JOIN condiction:

UPDATE people A, (SELECT userid FROM users) B SET A.level='1'

但是,我想你也应该使用一些WHERE子句......;)

例如,只有在“用户”表中存在连接值时,才会更新“人员”表中的“级别”...

UPDATE people A, users B SET A.level='1' WHERE A.userid=B.userid;