तो ऐसा कुछ पाने के लिए मैं एक सबक्वायरी का उपयोग करूंगा .. इस तरह आप केवल बाहरी क्वेरी पर रैंड() डाल रहे हैं जो बहुत कम कर लगेगा।
आपके प्रश्न से मुझे जो समझ में आया, उससे आप उच्चतम स्कोर के साथ तालिका से 200 पुरुष चाहते हैं... तो यह कुछ इस तरह होगा:
SELECT *
FROM table_name
WHERE age = 'male'
ORDER BY score DESC
LIMIT 200
अब 5 परिणामों को यादृच्छिक बनाने के लिए यह कुछ इस तरह होगा।
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