MySQL布尔值 - 翻转值?
Posted
技术标签:
【中文标题】MySQL布尔值 - 翻转值?【英文标题】:MySQL boolean - flipping the value? 【发布时间】: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
现在我很好奇这对于真正的程序员来说是可以接受还是可怕?
/我是初学者
【问题讨论】:
【参考方案1】:为什么不简单地使用:
更新 the_table SET boolean_field = NOT boolean_field 在哪里 ...让你的意图更容易阅读
【讨论】:
+1 增加可读性,同时(可能)不牺牲速度。【参考方案2】:您也可以使用field
= 1 - field
或field
= ! field
【讨论】:
@Pratik:我确定这是一个答案(只要它符合 OP 的要求),谢谢您的提及。 @zerkms 很好的答案,尤其是当您使用小的 unsigned int 作为布尔值时 @seddik 为什么“特别”? @zerkms 我不知道它是否适用于布尔值,但它确实适用于 int。以上是关于MySQL布尔值 - 翻转值?的主要内容,如果未能解决你的问题,请参考以下文章