我有一个包含许多表的MySQL数据库。其中一个表(由大约3000行组成)需要使用我在PHP中组合的半复杂函数进行更新。目前我的解决方案是我首先从表中读取所需的列,然后遍历列更新每个步骤的每个值:
$result = mysqli_query($con,"SELECT id, column1,column2 FROM $table");
$u=0; //Counter for loop
//Calculate value for each Row
if(mysqli_num_rows($result) > 0 ){
while($row = mysqli_fetch_assoc($result)){
$dataArray[] = $row ;
$dataArray[$u]['columnx'] = test_function($dataArray[$u]['column2']);
$id_des = $dataArray[$u]['id'];
$column1 = $dataArray[$u]['column1'];
$query11 = mysqli_query($con, "UPDATE $table SET $table.column1= ".$dataArray[$u]['column1']." WHERE id = $id_des;");
$u = $u+1;
}
}
我也做过类似的事情,使用循环来构建一个非常大的更新查询,使用CASE子句,这要快一点。然而,这两种方法都很慢,看起来很粗糙。
注意:如果有任何帮助,上面使用的功能是将百分比转换为z分数。
如果没有循环或加速执行,有没有办法做到这一点?甚至一个SQL语句也许呢?任何帮助将不胜感激。