sql >> Databáze >  >> RDS >> Mysql

Je možné aktualizovat více řádků najednou pomocí Zend_Db_Table?

To, na co se ptáte, se často nedělá, protože byste obvykle používali update() buď nastavit mnoho záznamů tak, aby měly stejné hodnoty, nebo nastavit jeden záznam tak, aby měl mnoho různých hodnot.

Jedním ze způsobů, jak to obejít, je agregovat aktualizace, takže pomocí pole získejte všechna ID, kde je rok 2011, a poté spusťte toto:

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

Tím se sníží počet dotazů za předpokladu, že máte mnoho řádků se stejným rokem. Dokumentace k tomuto je zde .

Nebo můžete použít metodu takto

Upravit po odpovědi OP

Samotná povaha problému znamená, že jej nelze efektivně vyřešit.

Ptáte se na způsob aktualizace 3 700 řádků dat s velmi odlišnými sadami dat. Pokud se soubory dat liší, neexistuje žádný vzor, ​​který byste mohli využít k tomu, aby to bylo efektivní. Nalezení vzorů, jako jsou řádky se stejným rokem, a jejich použití ve svůj prospěch zvýší rychlost dotazu, ale bude vyžadovat určité zapojení mozku ve formě masování polí jak poznamenal regilero.



  1. Nastavení mezipaměti dotazů MySql

  2. Jaká oprávnění jsou vyžadována k vytvoření uživatele v Oracle s uživatelem, který není DBA?

  3. Seskupit podle LIKE hodnoty sloupce

  4. Proč je práh připraveného příkazu PostgreSQL JDBC nastaven na 5?