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

MYSQL प्रत्येक श्रेणी से एक यादृच्छिक रिकॉर्ड का चयन करें

यह क्वेरी श्रेणियों में शामिल सभी आइटम यादृच्छिक क्रम में लौटाती है:

SELECT
c.id AS cid, c.category, i.id AS iid, i.name
FROM categories c
INNER JOIN items i ON c.id = i.category
ORDER BY RAND()

प्रत्येक श्रेणी को एक तक सीमित करने के लिए, क्वेरी को आंशिक . में लपेटें GROUP BY :

SELECT * FROM (
    SELECT
    c.id AS cid, c.category, i.id AS iid, i.name
    FROM categories c
    INNER JOIN items i ON c.id = i.category
    ORDER BY RAND()
) AS shuffled_items
GROUP BY cid

ध्यान दें कि जब किसी क्वेरी में GROUP BY both दोनों हों और ORDER BY खंड, समूहीकरण छँटाई से पहले किया जाता है। यही कारण है कि मैंने दो प्रश्नों का उपयोग किया है:पहला परिणामों को क्रमबद्ध करता है, दूसरा परिणामों को समूहीकृत करता है।

मैं समझता हूं कि यह प्रश्न किसी भी दौड़ को जीतने वाला नहीं है। मैं सुझावों के लिए तैयार हूं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Node.js के लिए MySQL लाइब्रेरी में त्रुटि

  2. Python का उपयोग करके BibTex फ़ाइल को डेटाबेस प्रविष्टियों में बदलें

  3. JDBC त्रुटि लेकिन कोई त्रुटि नहीं जब मैं MySQL कार्यक्षेत्र में अपनी क्वेरी चलाता हूं

  4. लूप के दौरान रिकॉर्ड कैसे प्राप्त करें

  5. MySQL ALTER TABLE टेबल पर डुप्लिकेट करने के लिए बहुत बड़ा है