自动更改枚举列

时间:2014-04-10 08:35:27

标签: mysql

我在一个status类型的表中有一个名为enum的列,可以有10两个值。我想编写一个查询,它将自动检查Enum的当前值并更改为其他值。

例如,我在表格中有行:

id   |  name   |  status
-----+---------+---------
  1  |  Abc    |    0
-----+---------+---------
  2  |  xyz    |    1

现在我想编写一个mysql查询,我将id行传递给更新,我将自动检查当前状态并将其更改为另一个。例如,如果我通过id=1,它会自动检查状态列的当前值并将其更改为1。同样,如果我通过id=2,它会检查第2行的状态值并将其更改为0

1 个答案:

答案 0 :(得分:1)

此处$id是您的传递 ID。请注意,虽然bool操作(例如status=!status)是“漂亮的”,但以这种方式使用ENUM并不好。

UPDATE t SET status=IF(status='0', '1', '0') WHERE id=$id

另外,好的想法是将类型更改为TINYINT,如果它只是存储01(那么status=!status将是个好主意)