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 10:59:31 +08:00
CASE WHEN ELSE 不行吗?
|
2
XiaoFaye 2017-10-24 11:01:17 +08:00
不知道 SQL 数据类型有没有像 C 那样的溢出,不然的话可以直接+1 就好,0+1 = 1, 1+1 =2 (溢出) = 0
|
3
holyghost 2017-10-24 11:15:00 +08:00
int 的话,可以位操作 UPDATE test SET status = mod(status + 1, 2);
enum 的话,只能 case 了吧?没想到别的办法。 |
4
bear2017 OP |
5
pubby 2017-10-24 11:44:16 +08:00
只有 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 12:16:11 +08:00
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 12:21:53 +08:00
|
9
ichou 2017-10-24 12:30:53 +08:00
|