sql >> Database >  >> RDS >> Mysql

Is het mogelijk om meerdere rijen tegelijk te updaten met Zend_Db_Table?

Wat je vraagt ​​wordt niet vaak gedaan, omdat je normaal gesproken update() . zou gebruiken om ofwel veel records in te stellen om dezelfde waarden te hebben of om één record in te stellen om veel verschillende waarden te hebben.

Een manier om dit te omzeilen is het aggregeren van de updates, dus gebruik je array om alle id's te krijgen waar het jaar 2011 is, voer dan dit uit:

 $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);

Als u dit doet, wordt het aantal zoekopdrachten verminderd, ervan uitgaande dat u veel rijen met hetzelfde jaar hebt. De documentatie hiervoor is hier .

Of u kunt een methode gebruiken zoals dit

Bewerken na OP-reactie

De aard van het probleem betekent dat het niet efficiënt kan worden opgelost.

Je vraagt ​​om een ​​manier om 3.700 gegevensrijen bij te werken met heel verschillende gegevenssets. Als de gegevenssets anders zijn, is er geen patroon dat u kunt gebruiken om dit efficiënt te maken. Het vinden van patronen, zoals rijen met hetzelfde jaartal, en deze in uw voordeel gebruiken, zal de snelheid van de zoekopdracht verhogen, maar vereist enige hersenactiviteit in de vorm van array mashing zoals opgemerkt door regilero.



  1. MySQL-fout 1170 (42000):BLOB/TEXT-kolom gebruikt in sleutelspecificatie zonder sleutellengte

  2. Hoe u de nieuwste functies in Office 365 krijgt

  3. Het graphql-type-json-pakket gebruiken met GraphQl

  4. Implementatie van geblokkeerde datums voor een ORM-model voor gebruikersgebeurtenissen