vì vậy để có được một cái gì đó như thế này, tôi sẽ sử dụng một truy vấn con .. theo cách đó bạn chỉ đặt RAND () trên truy vấn bên ngoài sẽ ít bị đánh thuế hơn nhiều.
Theo những gì tôi hiểu từ câu hỏi của bạn, bạn muốn 200 nam từ bảng có số điểm cao nhất ... vì vậy đó sẽ là một cái gì đó như thế này:
SELECT *
FROM table_name
WHERE age = 'male'
ORDER BY score DESC
LIMIT 200
bây giờ để ngẫu nhiên hóa 5 kết quả, nó sẽ giống như thế này.
SELECT id, score, name, age, sex
FROM
( SELECT *
FROM table_name
WHERE age = 'male'
ORDER BY score DESC
LIMIT 200
) t -- could also be written `AS t` or anything else you would call it
ORDER BY RAND()
LIMIT 5