大佬教程收集整理的这篇文章主要介绍了MySQL更新CASE WHEN / THEN / ELSE [重复],大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
尝试这个
updatE `table` SET `uID` = CASE
WHEN ID = 1 THEN 2952
WHEN ID = 2 THEN 4925
WHEN ID = 3 THEN 1592
ELSE `uID`
END
WHERE ID in (1,2,3)
这个问题已经在这里有了答案 :
@H_849_2@mySQL更新案例帮助 (6个答案)6年前关闭。
我正在尝试使用CLI脚本更新LARGE MyISAM表(2500万条记录)。该表没有被其他任何东西锁定/使用。
我想而不是对每个记录执行单个updatE查询,我不妨利用CASE功能。
该id
字段为PRIMary。我怀疑以下查询应花费毫秒。
updatE `table` SET `uid` = CASE
WHEN id = 1 THEN 2952
WHEN id = 2 THEN 4925
WHEN id = 3 THEN 1592
END
瞧,查询占用了CPU,并且永远无法完成。
然后,令我惊讶的是,我发现查询正在更新所有2500万行,在我未指定的行上放置NULL。
目的是什么?我可以只对特定的行进行MASS更新,而不必每次执行此查询时都更新2500万行吗?还是我必须先进行个别更新然后提交?
以上是大佬教程为你收集整理的MySQL更新CASE WHEN / THEN / ELSE [重复]全部内容,希望文章能够帮你解决MySQL更新CASE WHEN / THEN / ELSE [重复]所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。