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 .= $sql .= "END WHERE id IN ('". implode("','", array_keys($idnumArr)."')";

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。