首页 新闻 会员 周边 捐助

mysql update一个字段的多种值

0
[已关闭问题] 解决于 2018-04-11 17:54

 有个state字段的历史数据要更新。历史数据有第二级的新建更新删除三种状态,现在要把这些历史数据从第二级的状态update到第一级的新建更新删除状态,能不能一条sql完成呢?

可能表述的不清楚,我举个例子。历史数据state 是1,2,3三种值;现在要把state update 成4,5,6 而且1对应4,2对应5,3对应6这种的。

LittleAnts的主页 LittleAnts | 初学一级 | 园豆:4
提问于:2018-04-11 11:23
< >
分享
其他回答(1)
0

$sql="replace into ck52(CK5200,CK5100,CM1100,CK5103,CK5104,CK5209,CK5205,CK5206,CK5101,CK5107) values";
foreach ($arrearslist as $k=>$value){
$sql.="({$value['arreascost_id']},'${param['CK5100']}','{$param['CM1100']}','{$CK5103}','{$param['CK5104']}','1','{$value['startdate']}','{$value['enddate']}','{$value['amount']}','{$value['amount']}'),";
}
//去除sql语句的最后一个逗号
$sql = rtrim($sql,',');
$res=M()->execute($sql);

这个你要是再看不懂 那我就没办法了

思念断了线 | 园豆:263 (菜鸟二级) | 2018-04-11 15:39

你这是mybatis的foreach操作吧,这样感觉还不如单条语句更新的快呢。而且,我们用的是springJdbc

支持(0) 反对(0) LittleAnts | 园豆:4 (初学一级) | 2018-04-11 17:34
0

update table set state = state -3 where state > 3

夜阑卧听 | 园豆:202 (菜鸟二级) | 2022-01-04 16:32
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册