假设我有一个包含7列的表:sun
,mon
,tue
等...
我有一行全0,我需要使用dayofWeek(now())
更新列。
如果函数返回1,我需要更新sun=1
,如果函数返回2,我需要更新mon=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,
...