基于值更新mysql表列
假设我有一个包含7列的表:基于值更新mysql表列,mysql,Mysql,假设我有一个包含7列的表:sun、mon、tue,等等 我有一行包含所有0,我需要使用dayofWeek(now())更新列 我需要更新sun=1如果函数返回1,mon=1如果函数返回2,等等。您可以使用如下查询: UPDATE yourtable SET sun=(dayofWeek(now()) = 1), mon=(dayofWeek(now()) = 2), tue=(dayofWeek(now()) = 3), ... WHERE id=something UPD
sun
、mon
、tue
,等等
我有一行包含所有0,我需要使用dayofWeek(now())
更新列
我需要更新
sun=1
如果函数返回1,mon=1
如果函数返回2,等等。您可以使用如下查询:
UPDATE yourtable
SET
sun=(dayofWeek(now()) = 1),
mon=(dayofWeek(now()) = 2),
tue=(dayofWeek(now()) = 3),
...
WHERE
id=something
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,
...
请看小提琴
如果您不想更改实际值,可以使用以下方法:
UPDATE yourtable
SET
sun=(dayofWeek(now()) = 1),
mon=(dayofWeek(now()) = 2),
tue=(dayofWeek(now()) = 3),
...
WHERE
id=something
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,
...
可以我想是的。现在怎么办?我甚至没有想到,因为我无法解析第三个“我有”子句。谢谢,但我的主要动机是得到类似的东西,选择@day=dayofWeek(Now()),然后我们可以有类似于updatecase(@day==1)的东西,然后是set sun=1 case(@day==2)然后是set mon吗=2@AshishMohan如果我理解正确的话,我的第二个查询应该是您需要的,只需将
…然后是1个其他…
更改为然后是2个…
,然后是3个…
,等等。它将更新当天的列,并保持所有其他列不变