enum('0','1') default('0'),要实现取反操作。即 0-->>1 1-->>0
尝试过
set status=~status 当status=0时,输出结果为空set status=status^1 当status=0时,输出结果为空set status=abs(status-1) 当status=0时,输出结果为空sql 渣渣,大佬请亲喷😂😂
1
XiaoFaye 2017 年 10 月 24 日
CASE WHEN ELSE 不行吗?
|
2
XiaoFaye 2017 年 10 月 24 日
不知道 SQL 数据类型有没有像 C 那样的溢出,不然的话可以直接+1 就好,0+1 = 1, 1+1 =2 (溢出) = 0
|
3
holyghost 2017 年 10 月 24 日
int 的话,可以位操作 UPDATE test SET status = mod(status + 1, 2);
enum 的话,只能 case 了吧?没想到别的办法。 |
4
bear2017 OP |
5
pubby 2017 年 10 月 24 日
只有 0,1 ?
status=IF(status=1,0,1) or status=1-status |
6
bear2017 OP @pubby #5 不行哇,在值只有(0,1)的情况下,`status=1-status` 等同于`status=abs(status-1)`。
结果是一毛一样的,`status=0`时候结果还是空[我也很无奈啊] |
7
noNOno 2017 年 10 月 24 日
SELECT status,ABS(status-2) FROM test.test
已测 status ABS(status-2) 0 1 1 0 1 0 0 1 0 1 |
8
ichou 2017 年 10 月 24 日
|
9
ichou 2017 年 10 月 24 日
|