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

Truy vấn Doctrine để tìm tổng số Kết quả trong MySQL với LIMIT

Có một tính năng phân trang, được tích hợp trong 2.2 và thực hiện điều gì đó tương tự như những gì bạn đang tìm kiếm:

https://www.doctrine -project.org/projects/doctrine-orm/en/latest/tutorials/pagination.html#pagination

Nhưng tôi không tin rằng nó sử dụng SQL_CALC_FOUND_ROWS :nó thực hiện hai (hoặc ba, tùy thuộc vào cách bạn định cấu hình) các truy vấn riêng biệt để nhận kết quả và đó thường là cách chính xác để tiếp tục.

Nếu bạn thực sự nhấn mạnh vào việc sử dụng tính năng MySQL, tôi nghĩ bạn cần sử dụng SQL thô và ánh xạ tập kết quả. Đây là một ví dụ:

Số lượng hàng trong Doctrine 2

Trên một ghi chú hoàn toàn riêng biệt, hãy kiểm tra xem SQL_CALC_FOUND_ROWS thực sự có giá trị sử dụng cho truy vấn cụ thể của bạn. Count được tối ưu hóa tốt trong MySQL cho các truy vấn giống như truy vấn bạn đang làm. Xem câu hỏi này cụ thể:

Cái nào nhanh nhất? CHỌN SQL_CALC_FOUND_ROWS TỪ `bảng` hoặc CHỌN COUNT (*)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Codeigniter Active Record HAVING / WHERE db.field =db.field

  2. Làm cách nào để lấy tên cột từ một bảng MySQL nhất định?

  3. django.db.utils.OperationalError:(1045:Quyền truy cập bị từ chối đối với người dùng 'root' @ 'localhost' (sử dụng mật khẩu:NO)

  4. Danh sách MySQL Tất cả các bản sao

  5. Mysql - Ngăn chặn các mục nhập trùng lặp của các cột được kết hợp với Chỉ mục duy nhất