首页新闻找找看学习计划

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 | 初学一级 | 园豆:36
提问于:2018-04-11 11:23
< >
分享
最佳答案
1

update table_name
set state = (case state when '1' then '4'
when '2' then '5'
else '6' end);

奖励园豆:5
流年飞雨 | 小虾三级 |园豆:1978 | 2018-04-11 17:52

已经找到了,还是谢谢啊

LittleAnts | 园豆:36 (初学一级) | 2018-04-11 17:54

@ʚ飞累的荆棘鸟√: 我是在练手

流年飞雨 | 园豆:1978 (小虾三级) | 2018-04-11 21:56
其他回答(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 | 园豆:36 (初学一级) | 2018-04-11 17:34
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册