mysql中同时更新多个记录(字段相同值不同)

操作:构建mysql中case。。。when。。。then。。。else。。。end方式

@UpdateProvider(type=Sql.class,method="update")
int update(@param("data")map);  //其中map存放id(主键)与name值的映射

class Sql{
	public String update(Map<String,Object>map){
		Map m=map.get("data");  //然后强转。具体细节不写了
		String sql;
		sql=new SQL(){{
			UPDATE("表名");
			//判断一下,如果m中只有一组数据,直接set。。。where。。。
			//如果是多组数据
			String set="";
			//首先遍历一下
					//对第一组做单独处理
					set+="name= case _id when "+'m中id值'+" then "+ 'm中对应的name值';
					//其他组数据
					set+=" when "+'m中id值'+" then "+'m中name值';
			//循环外再加上一句,就可以不用写where语句了
			set+=" else name end";  //意思是其他情况,依然用他们自己的数据再填充一次
			SET(set);
		}}
		return sql;   //OK
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值