Tengo una base de datos bastante grande que se importó usando el método csv 'LOAD DATA INFILE'. Sin embargo, algunas celdas deben manipularse y, lamentablemente, no puedo hacerlo durante la importación. Tengo que hacerlo después, ya que es mucho más fácil jugar con PHP, sin mencionar que hay otras celdas de la tabla que deben cambiarse, lo que es imposible de hacer con los comandos de mysql. Un ejemplo de este tipo de manipulaciones es la celda 'Teléfono'. Tengo que dividir el número de teléfono y luego actualizar por separado 2 celdas diferentes de la misma fila. Por ejemplo:
$myQ = my_db_query("SELECT companyId, Telephone FROM companies WHERE 1"); while ($row = my_db_fetch_array($myQ)) { if($row["Telephone"] != ""){ $Telefon_area = ""; $Telefon_num = ""; $pieces = explode(" ", $row["Telephone"]); $Telefon_area = trim( $pieces[0] ); $Telefon_num = trim( $pieces[1] ); my_db_query("UPDATE companies SET `Telefon_area` = '$Telefon_area', `Telefon_num` = '$Telefon_num' WHERE `companyId` = ".$row["companyId"]); } }El problema al que me enfrento con este enfoque es que (aunque he indexado la columna Teléfono), es muy lento, porque estoy actualizando 1,5 millones de entradas.
¿Hay una manera más rápida de hacer esto?