Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Czy możliwe jest aktualizowanie wielu wierszy jednocześnie za pomocą Zend_Db_Table?

To, o co prosisz, nie jest często wykonywane, ponieważ zwykle używasz update() ustawić wiele rekordów na te same wartości lub ustawić jeden rekord na wiele różnych wartości.

Jednym ze sposobów na obejście tego jest agregacja aktualizacji, więc korzystając z tablicy, pobierz wszystkie identyfikatory, w których jest rok 2011, a następnie uruchom to:

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

W ten sposób zmniejszysz liczbę zapytań, zakładając, że masz wiele wierszy z tym samym rokiem. Dokumentacja do tego znajduje się tutaj .

Możesz też użyć metody jak to

Edytuj po odpowiedzi OP

Sama natura problemu oznacza, że ​​nie można go skutecznie rozwiązać.

Pytasz o sposób aktualizacji 3700 wierszy danych przy użyciu bardzo różnych zestawów danych. Jeśli zestawy danych są różne, nie ma wzorca, który można wykorzystać, aby uczynić to skutecznym. Znalezienie wzorców, takich jak wiersze z tym samym rokiem, i wykorzystanie ich na swoją korzyść zwiększy szybkość zapytania, ale będzie wymagało pewnego zaangażowania mózgu w postaci zacierania tablic jak zauważył regilero.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zdefiniuj zmienną w ramach wyboru i użyj jej w ramach tego samego wyboru

  2. Usuwanie ostatniego przecinka w pętli while - PHP

  3. Jak zaktualizować wartość kolumny z bieżącą wartością kolumny plus przyrost w codeigniter?

  4. Czy to zapytanie jest bezpieczne przed wstrzyknięciem sql?

  5. Jak wykonać zapytanie PHP przy wyborze opcji przy użyciu AJAX?