Đây là cách truy vấn cơ sở dữ liệu để tìm thứ hạng cho người chơi udid 1
:
SELECT COUNT(*) AS rank
FROM tablename
WHERE score > (SELECT score FROM tablename WHERE udid = 1)
Tôi cho rằng điểm số cao hơn sẽ tốt hơn và bạn chỉ đang lưu trữ điểm số cao nhất cho mỗi người chơi.
Với chỉ số trên score
và udid
, điều này sẽ khá nhanh.
Những gì truy vấn thực hiện là đếm số lượng người dùng có điểm số cao hơn người dùng đã chọn.
Nếu điểm thấp hơn là tốt hơn, chỉ cần thay đổi nó thành thế này:
SELECT COUNT(*) AS rank
FROM tablename
WHERE score < (SELECT score FROM tablename WHERE udid = 1)
Tính số người chơi có điểm thấp hơn.
Đọc tất cả về Chỉ mục MySQL .