mysql批量更新的sql语句

mysql单挑更新浪费性能,肯定使用批量更新能够减少其网络交互时间,提高msyql执行性能。

例如有个tag表,需要根据id批量更新num字段,sql语句如下即可:

update tag SET num = CASE id WHEN 4 THEN 1627934 WHEN 5 THEN 1623435 WHEN 6 THEN 1622588 WHEN 7 THEN 1618736 WHEN 70 THEN 415 WHEN 71 THEN 24 WHEN 72 THEN 18 WHEN 74 THEN 45 WHEN 75 THEN 32 WHEN 76 THEN 31 END WHERE id IN ('4','5','6','7','70','71','72','74','75','76');

如果用php,则需要拼成一个字符串,代码如下:

$sql = "update recommend_tag SET total_sub_num = CASE id ";

foreach ($idnumArr as $id => $num) { //idnumArr是一个以id为key,以num为value的键值对

     $sql .= sprintf("WHEN %d THEN %d ", $id, $num);

}

$sql .= $sql .= "END WHERE id IN ('". implode("','", array_keys($idnumArr)."')";


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值