我希望这是这样的。
我有一个ENUM
列,其中0和1,我希望在每个查询中切换这两个值。
UPDATE settings
SET state = 1 IF state = 0
ELSE IF state = 0
SET STATE = 1 WHERE id = '$id';
我尝试了这个,但它使列空了。
UPDATE settings SET state = IF(state=1, 0, 1)
感谢。
答案 0 :(得分:2)
我不喜欢various reasons的enum
。特别是当您使用它来存储0
和1
时,它可能会令人困惑,是的,甚至容易出错。
使用tinyint,它更容易使用,更易读。
mysql> create table switch(state tinyint default 0);
mysql> insert into switch values (0);
mysql> select * from switch;
+-------+
| state |
+-------+
| 0 |
+-------+
mysql> update switch set state = not state; /*simple as that :)*/
mysql> select * from switch;
+-------+
| state |
+-------+
| 1 |
+-------+
mysql> update switch set state = not state;
mysql> select * from switch;
+-------+
| state |
+-------+
| 0 |
+-------+
答案 1 :(得分:0)
你也可以使用简单的 if 语句:
mysql > UPDATE switch SET state=if(state=0,1,0);