我有的表
表1 user_id, date
表2 user_id, status
我需要像
这样的东西UPDATE Table2
SET status = 2
WHERE user_id in ( {SELECT user_id FROM Table1 WHERE date > 0} )
换句话说,我需要查看table1中的日期是否超过0000-00-00,然后抓住符合此条件的人的user_id,并在table2中使用它们将其状态设置为2。 问题是我需要为多个用户执行此操作,因此请求内部请求对我不起作用,它仅在结果中有一行时才有效。
答案 0 :(得分:1)
我认为你写的东西应该有效,但花括号是什么?只需删除它们就可以这样:
UPDATE Table2
SET status = 2
WHERE user_id in (SELECT user_id FROM Table1 WHERE date > 0)
根据MySQL documentation,IN应该使用子查询。
ANY关键字必须跟随比较运算符,意味着“如果子查询返回的列中的任何值的比较为TRUE,则返回TRUE。”
当与子查询一起使用时,单词IN是= ANY的别名。
答案 1 :(得分:0)
您使用PHP或其他语言进行SQL调用吗?如果是这样,那可能更容易,
此致 标记