nodejs中 mysql update 批量更新

nodejs中 mysql update 批量更新

传入的是一个数组,前者影响后者
例如[id,num]
[[1,3],[2,5],[6,8]]

SET num=? WHERE id=?

阅读 11k
4 个回答
[[1,3],[2,5],[6,8]].forEach((item,index)=>
    connection.query('update table SET num=? WHERE id=?',item,function(err,result)=>{
    
    })
)
类似这个样子

连接池 multipleStatements 设为 true,然后直接把多条update语句拼成一句提交,在 where 后面的字段加索引;这样就非常快了

新手上路,请多包涵
 $display_order     = [
     1 => 4, 
     2 => 1, 
     3 => 2, 
     4 => 3, 
     5 => 9, 
     6 => 5, 
     7 => 8, 
     8 => 9 
 ]; 
 $ids = implode(',', array_keys($display_order)); 
 $sql = "UPDATE categories SET display_order = CASE id "; 
 foreach ($display_order as $id => $ordinal) { 
  $sql .= sprintf("WHEN %d THEN %d ", $id, $ordinal); 
 } 
 $sql .= "END WHERE id IN ($ids)"; 
 echo $sql;

参考php的代码,自己拼接sql

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题