SQL更新-如何切换?

0 php mysql sql

我想在SQL更新语句中创建一个“切换”效果。如果值为“ important”,1则查询应将其更新为0,反之亦然。如果值是0查询,则应将其更新到1数据库中。

UPDATE items SET important = case when 0 then 1 else 0 end WHERE id = x
Run Code Online (Sandbox Code Playgroud)

Gor*_*off 5

使用算术:

UPDATE items
    SET important = 1 - important
    WHERE id = x;
Run Code Online (Sandbox Code Playgroud)

但是,您的代码也应该起作用。

也许在MySQL中更好的方法是使用NOT

UPDATE items
    SET important = NOT important
    WHERE id = x;
Run Code Online (Sandbox Code Playgroud)

这在其他数据库中不起作用,但是在MySQL中起作用,因为它在布尔上下文中将数字视为布尔值,其中1表示true,0表示false。

  • 太棒了 虽然很明显我还没有。 (2认同)