Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MYSQL बड़ी मेज पर यादृच्छिक चुनें स्कोर द्वारा आदेश

तो ऐसा कुछ पाने के लिए मैं एक सबक्वायरी का उपयोग करूंगा .. इस तरह आप केवल बाहरी क्वेरी पर रैंड() डाल रहे हैं जो बहुत कम कर लगेगा।

आपके प्रश्न से मुझे जो समझ में आया, उससे आप उच्चतम स्कोर के साथ तालिका से 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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ubuntu के साथ dockerfile बनाते समय libmysqlclient-dev पैकेज स्थापित नहीं कर सकता

  2. मैं AWS RDS पर निर्माण से तालिका नाम लॉक करने वाले InnoDB भ्रष्टाचार को कैसे ठीक करूं (त्रुटि:-1)?

  3. mysql अमान्य तिथियों को ठीक करें

  4. MySQL कनेक्शन कैरेक्टर सेट समस्याएं

  5. MySQL ट्रिगर्स का उपयोग करना