Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Có thể cập nhật nhiều hàng cùng lúc bằng Zend_Db_Table không?

Những gì bạn yêu cầu thường không được thực hiện, vì bạn thường sử dụng update() đặt nhiều bản ghi có cùng giá trị hoặc đặt một bản ghi có nhiều giá trị khác nhau.

Một cách để giải quyết vấn đề này là tổng hợp các bản cập nhật, vì vậy, sử dụng mảng của bạn, hãy lấy tất cả các id có năm là 2011, sau đó chạy điều này:

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

Làm điều này sẽ giảm số lượng truy vấn giả sử bạn có nhiều hàng với cùng một năm. Tài liệu cho việc này là tại đây .

Hoặc bạn có thể sử dụng một phương thức như thế này

Chỉnh sửa sau phản hồi OP

Bản chất của vấn đề có nghĩa là nó không thể được giải quyết một cách hiệu quả.

Yêu cầu của bạn về một cách cập nhật 3.700 hàng dữ liệu với các bộ dữ liệu rất khác nhau. Nếu các tập dữ liệu khác nhau thì không có mẫu nào mà bạn có thể khai thác để tạo ra hiệu quả. Việc tìm kiếm các mẫu, chẳng hạn như các hàng có cùng năm và sử dụng chúng theo lợi ích của bạn sẽ tăng tốc độ truy vấn nhưng sẽ yêu cầu một số hoạt động của bộ não dưới dạng trộn mảng như đã lưu ý bởi 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. Ràng buộc XOR trong Mysql

  2. Truy vấn MySQL để chọn kết quả có tăng tự động dưới dạng cột mới được thêm vào kết quả

  3. ms-access không thể xóa

  4. Làm thế nào để đặt lại mật khẩu gốc mysql?

  5. Bộ mã hóa địa lý của Google Maps để tìm các địa điểm lân cận từ cơ sở dữ liệu MySQL