【问题标题】:Update a boolean to its opposite in SQL without using a SELECT在不使用 SELECT 的情况下将布尔值更新为 SQL 中的相反值
【发布时间】:2013-02-17 10:42:49
【问题描述】:

是否可以通过告诉布尔字段将字段更新为与其相反的值来升级布尔字段,而不必选择值 - 检查它然后相应地进行更新,这似乎很冗长......

我的意思的一个伪示例

UPDATE `table` SET `my_bool` = opposite_of(my_bool)

目前我必须在一个查询中选择 my_bool,然后快速检查它的值,以便我可以在第二个查询中更新表。

如果可能的话,我希望将其缩减为一个查询?

【问题讨论】:

    标签: mysql sql pdo sql-update


    【解决方案1】:

    使用NOT

    UPDATE `table` SET `my_bool` = NOT my_bool
    

    【讨论】:

    • 所以真 = 假,假 = 真!整洁的! :) 谢谢!
    • 必须等待 13 分钟才能勾选您的答案 - 如果投票数足够高,应该会更短:P
    • SET active = NOT active 还是SET active = NOT(active)
    • 如果喜欢SET active = NOT active
    • 好吧,看来我的语法错误与然后有一个 INNER JOIN 有关
    【解决方案2】:
    UPDATE `Table` SET `my_bool` = 1 ^ `my_bool`
    

    【讨论】:

    • 这对我来说是更好的选择,由于某种原因,我在尝试在 INSERT INTO.....SELECT 命令中使用 NOT 时遇到错误,谢谢
    猜你喜欢
    • 2021-10-10
    • 1970-01-01
    • 2013-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-05
    相关资源
    最近更新 更多