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

Truy vấn MySQL đến các hàng Xếp hạng động


Nó sẽ chậm, nhưng having mệnh đề sẽ chạy sau tất cả các lựa chọn, tham gia, ở đâu và theo nhóm đã hoàn thành và được giải quyết hoàn toàn.
Vấn đề duy nhất là having không sử dụng chỉ mục, trong khi where không sử dụng một chỉ mục.

SELECT
  ranking stuff
FROM 
  lot of tables
WHERE simple_condition
HAVING filters_that_run_last

Làm cho các liên kết của bạn trở nên rõ ràng
Lưu ý rằng bạn không phải kết hợp các phép nối rõ ràng và ngầm.
Nếu bạn muốn kết hợp chéo, bạn có thể sử dụng cross join từ khóa.

    ....
    ) AS Ranking
    CROSS JOIN (SELECT @curr := null, @prev := null, @rank := 0) InitVars
WHERE
  Ranking.regional_id = 1003


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tôi có nên mysql_real_escape_string nhập mật khẩu trong biểu mẫu đăng ký không?

  2. chèn đầu ra print_r vào cơ sở dữ liệu?

  3. SQL DML:Giá trị ngày không chính xác (MySQL)

  4. Cách ẩn thông báo lỗi

  5. Tìm kiếm mục nhập - trong Cơ sở dữ liệu (mà không chỉ định tên Cột / Tên bảng)