Mysql SQL中使用大小写更新同一表中的多行

Mysql SQL中使用大小写更新同一表中的多行,mysql,sql,Mysql,Sql,我可以垂直更新数据库,但同时水平更新如何 下面是我的代码 UPDATE energy SET nov = CASE WHEN label = 'myLabel' THEN '123' WHEN label = 'myLabel2' THEN '123' ELSE nov END WHERE uname='123' AND years='2558' 你的意思是说一排有很多场: UPDATE energy SET nov = CASE

我可以垂直更新数据库,但同时水平更新如何

下面是我的代码

UPDATE energy SET nov = CASE
WHEN label = 'myLabel' THEN '123'
WHEN label = 'myLabel2' THEN '123'
ELSE nov
END WHERE uname='123' AND years='2558'

你的意思是说一排有很多场:

    UPDATE   energy
   SET   nov =
            CASE
               WHEN label = 'myLabel' THEN '123'
               WHEN label = 'myLabel2' THEN '123'
               ELSE nov
            END
       , nov2 =
            CASE
               WHEN label2 = 'myLabel' THEN '3123'
               WHEN label2 = 'myLabel2' THEN '3123'
               ELSE nov2
            END
 WHERE   uname = '123' AND years = '2558'

你也可以这样做

UPDATE energy
 SET nov =
(select  CASE
WHEN label = 'myLabel' THEN '123'
WHEN label = 'myLabel2' THEN '123'
ELSE nov
END  as case)
WHERE uname='123' AND years='2558'

无论如何,谢谢你,这是工作。在此之前,我使用这个集合nov,nov2 CASE,当label='myLabel'然后('123','123'),当label='myLabel2'然后('123','123'),否则nov结束,uname='123'和years='2558',甚至这个(nov=CASE……'2558,nov2=CASE…'2558'),这就是我失败的原因