Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Apakah mungkin untuk memperbarui beberapa baris sekaligus menggunakan Zend_Db_Table?

Apa yang Anda minta tidak sering dilakukan, seperti yang biasanya Anda gunakan update() untuk mengatur banyak record agar memiliki nilai yang sama atau menetapkan satu record untuk memiliki banyak nilai yang berbeda.

Salah satu cara mengatasinya adalah menggabungkan pembaruan, jadi menggunakan array Anda, dapatkan semua id di mana tahun 2011 lalu jalankan ini:

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

Melakukan ini akan mengurangi jumlah kueri dengan asumsi Anda memiliki banyak baris dengan tahun yang sama. Dokumentasi untuk ini di sini .

Atau Anda dapat menggunakan metode seperti ini

Edit setelah tanggapan OP

Sifat masalahnya berarti tidak dapat diselesaikan secara efisien.

Anda meminta cara memperbarui 3.700 baris data dengan kumpulan data yang sangat berbeda. Jika kumpulan data berbeda maka tidak ada pola yang dapat Anda eksploitasi untuk membuat ini efisien. Menemukan pola, seperti baris dengan tahun yang sama, dan menggunakannya untuk keuntungan Anda akan meningkatkan kecepatan kueri tetapi akan memerlukan beberapa keterlibatan otak dalam bentuk penghancuran array seperti yang dicatat oleh 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. mariadb Regexp terkadang kembali kosong dalam prosedur tersimpan

  2. Laravel:Kueri bersarang menggabungkan hasil dalam sub array

  3. Fungsi MySQL LN() – Mengembalikan Logaritma Natural dari suatu Angka

  4. MySQL:Tidak dapat memberi nama tabel dalam Kasus Unta Atas (Kasus Pascal)

  5. Fungsi MySQL ACOS() – Mengembalikan Arc Cosinus dari Angka