我正在寻找一种解决方案/最佳实践来交换状态标志的值。
mysql 中的状态 INT(3) 有几个值,我希望能够交换 LIVE 和 NOT_LIVE 值,而不会中断其中的其他按位值。
如果它是一个标志字段,如 0 或 1,则很容易:
'status' NOT 'status'
我想知道是否有一种方法可以基于两个值 (x, y) 进行交换 - 无需过多的代码逻辑,如上面的代码。当然,我可能在做梦,只需要恢复到 SELECT 查询、if 语句和 UPDATE...
有什么想法吗?
最佳答案
所以你的值是 1 和 2,但你想要位式翻转?那是行不通的,因为 1 和 2 设置了不同的位!
试试这个:
UPDATE table SET status = CASE status WHEN 1 THEN 2 ELSE 1 END
关于php - 按位运算符的 MySQL 状态交换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1432346/