请问MYSQL中不支持通过select查询来更新多列吗?像下面的语句,我在oracle中就可以运行,但mysql就报错了

请问MYSQL中不支持通过select查询来更新多列吗?像下面的语句,我在oracle中就可以运行,但mysql就报错了,第1张

update t1 set colA=newA,colB=newB,colC=newC from t2 where t1.id=t2.id

试一试这样,应该是没有问题。我在sqlserver2000里试过了。

如果修改有规律可循的,可以按规律编写更新查询。

无规律的可以使用case when流程,例如

update tblName set sName=

case sName

when '张三' then '王二'

when '李四' then '麻子'

end where

sName in ('张三','李四')

不需要写过程的,就是个行转列查询,使用group by分组即可,语句如下:

INSERT INTO New_Mydata

(Nameid, Allc1, Allc2, Allc3, Allc4, ALL)

SELECT Nameid,

SUM(CASE Allc WHEN '满意' THEN 1 ELSE 0 END),

SUM(CASE Allc WHEN '一般' THEN 1 ELSE 0 END),

SUM(CASE Allc WHEN '不满意' THEN 1 ELSE 0 END),

SUM(CASE Allc WHEN '未平' THEN 1 ELSE 0 END),

SUM(*)

FROM Mydat

GROUP BY Nameid


欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/zaji/6163792.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-16
下一篇 2023-03-16

发表评论

登录后才能评论

评论列表(0条)

保存