sql >> Base de Datos >  >> RDS >> Mysql

¿Es posible actualizar varias filas a la vez usando Zend_Db_Table?

Lo que pides no se suele hacer, ya que normalmente usarías update() para configurar muchos registros para que tengan los mismos valores o configurar un registro para que tenga muchos valores diferentes.

Una forma de evitar esto es agregar las actualizaciones, por lo que al usar su matriz, obtenga todas las identificaciones donde el año es 2011 y luego ejecute esto:

 $where = array();

 // This where should contain all the ids that need the year set to 2011
 // E.g.
 $where[] = array("id" => 3);

 $db->update("table_name", array("year" => 2011), $where);

Hacer esto reducirá la cantidad de consultas, suponiendo que tenga muchas filas con el mismo año. La documentación para esto está aquí .

O podría usar un método como este

Editar después de la respuesta OP

La naturaleza misma del problema significa que no se puede resolver de manera eficiente.

Está solicitando una forma de actualizar 3700 filas de datos con conjuntos de datos muy diferentes. Si los conjuntos de datos son diferentes, entonces no hay un patrón que pueda explotar para hacerlo eficiente. Encontrar patrones, como filas con el mismo año, y usarlos a su favor aumentará la velocidad de la consulta, pero requerirá algo de compromiso mental en forma de maestría de matrices como señala regilero.