目前项目需要多条件更新多条数据收益,想到的是使用case when,问题在于该表没有主键,也没有唯一索引,所以写sql的时候单单where条件就要写很长;举例:
我要同时更新这些数据,那么casewhen 的大概写法就是:
现在仅仅是更新两条数据,然而这个功能是一个月跑一次,是统计月账单的,一个月的数据最少也是万级别的,该表也是用四个字段来确定唯一值的,也就是到时候where条件会变长很多,case when也会变长,出的sql语句也会很长
我的问题就是:
1.在不改变表结构的情况下,也就是不添加唯一索引,需要操作多数据更新有什么好方法?
2.如果使用case when更新,那么mysql能处理像我这样拼接一个月的casewhen 更新语句吗?
目前我的处理是将数据切分成固定小块,也就是将1万条数据分成200个50份的casewhen语句再循环处理,也就是处理200次,总比处理1万次好
我要同时更新这些数据,那么casewhen 的大概写法就是:
现在仅仅是更新两条数据,然而这个功能是一个月跑一次,是统计月账单的,一个月的数据最少也是万级别的,该表也是用四个字段来确定唯一值的,也就是到时候where条件会变长很多,case when也会变长,出的sql语句也会很长
我的问题就是:
1.在不改变表结构的情况下,也就是不添加唯一索引,需要操作多数据更新有什么好方法?
2.如果使用case when更新,那么mysql能处理像我这样拼接一个月的casewhen 更新语句吗?
目前我的处理是将数据切分成固定小块,也就是将1万条数据分成200个50份的casewhen语句再循环处理,也就是处理200次,总比处理1万次好