根据值更新mysql表列

时间:2013-06-20 15:22:05

标签: mysql

假设我有一个包含7列的表:sunmontue等...

我有一行全0,我需要使用dayofWeek(now())更新列。

如果函数返回1,我需要更新sun=1,如果函数返回2,我需要更新mon=1等等。

1 个答案:

答案 0 :(得分:2)

你可以使用这样的查询:

UPDATE yourtable
SET
  sun=(dayofWeek(now()) = 1),
  mon=(dayofWeek(now()) = 2),
  tue=(dayofWeek(now()) = 3),
  ...
WHERE
  id=something

请参阅小提琴here

如果您不想更改实际值,可以使用以下内容:

UPDATE yourtable
SET
  sun=CASE WHEN dayofWeek(now()) = 1 THEN 1 ELSE sun END,
  mon=CASE WHEN dayofWeek(now()) = 2 THEN 1 ELSE mon END,
  tue=CASE WHEN dayofWeek(now()) = 3 THEN 1 ELSE tue END,
  ...