我正在尝试更新条件为user_status
的文件:
update pm_users
set user_status = if (
(select u.user_status from pm_users u where u.user_id = 3
) = '1', '0', '1' )
where user_id = 3
表示如果user_status = 1
,则将状态更新为0,如果用户状态为0,则为1。
我收到错误:You can't specify target table 'pm_users' for update in FROM clause
我认为这意味着我不能像上面那样使用这个查询同一个表吗?我不确定。
请帮助我走正确的路,让我纠正。
答案 0 :(得分:10)
尝试以下
update pm_users
set user_status = case when user_status = 0 then 1 else 0 end
where user_id = 3
答案 1 :(得分:0)
而不是尝试CASE
update pm_users
set user_status = CASE WHEN user_status = '1' THEN '0' ELSE '1' END
WHERE user_id = 3