【问题标题】:MySQL boolean - flipping the value?MySQL布尔值 - 翻转值?
【发布时间】:2011-03-30 06:41:19
【问题描述】:

MySQL 使用 TinyINT 作为布尔字段。鉴于 0 和 1 的可能选项,我决定像这样翻转值:

UPDATE table
SET boolean_field = ABS(boolean_field - 1)
WHERE Circle-K = 'Strange things are afoot'

所以你要么选择 1 -> 0 -> ABS(0) = 0

或 0 -> -1 -> ABS(-1) = 1

现在我很好奇这对于真正的程序员来说是可以接受还是可怕

/我是初学者

【问题讨论】:

    标签: mysql boolean


    【解决方案1】:

    为什么不简单地使用:

    更新 the_table SET boolean_field = NOT boolean_field 在哪里 ...

    让你的意图更容易阅读

    【讨论】:

    • +1 增加可读性,同时(可能)不牺牲速度。
    【解决方案2】:

    您也可以使用field = 1 - fieldfield = ! field

    【讨论】:

    • @Pratik:我确定这是一个答案(只要它符合 OP 的要求),谢谢您的提及。
    • @zerkms 很好的答案,尤其是当您使用小的 unsigned int 作为布尔值时
    • @seddik 为什么“特别”?
    • @zerkms 我不知道它是否适用于布尔值,但它确实适用于 int。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多