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.