MySQL 布尔值 - 翻转值?

问题描述 投票:0回答:3

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
3个回答
62
投票

为什么不简单地使用:

更新_表
   SET 布尔字段 = NOT 布尔字段
在哪里 ...

让你的意图更容易阅读


18
投票

您还可以使用

field
= 1 -
field
field
= !
field


0
投票
 DB::query("UPDATE users SET mobile_verified= IF(mobile_verified='yes', 'no', 'yes') WHERE user_id='$value1' ");
© www.soinside.com 2019 - 2024. All rights reserved.