1 $arr = []; 2 $str = ‘‘; 3 for ($i=0; $i < 2660; ++$i) 4 { 5 $str .= " WHEN ".$i." THEN ".rand(0,50); 6 $arr[] = $i; 7 } 8 //WHEN 1 THEN 3 9 $arr = implode(‘,‘,$arr); 10 // var_dump($arr);die; 11 $sql = "UPDATE `ez_deichmann_original_goods_temp` SET `qty`= CASE id ".$str." END WHERE id IN ({$arr})"; 12 var_dump($sql);die; 13 $res = mysqli_query($conn,$sql); 14 if ($res) { 15 echo ‘00000000000000‘; 16 }else{ 17 echo ‘111111111‘; 18 }
这是我的解决办法,下面这段话是网上摘抄
这句sql的意思是,更新qty 字段,如果id=$i 则qty 的值为THEN 后面的随机数,因为我的数据量是2600多,所以我循环了这么多次,
即是将条件语句写在了一起。
这里的where部分不影响代码的执行,但是会提高sql执行的效率。确保sql语句仅执行需要修改的行数。
原文:https://www.cnblogs.com/mywordone/p/11097486.html