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

स्थिति के अनुसार यादृच्छिक 2 रिकॉर्ड और स्थिति के अनुसार क्रम

आप position, rand() . के आधार पर छाँट सकते हैं ताकि प्रत्येक position . के भीतर एक यादृच्छिक क्रम हो विभाजन। फिर position . के रिकॉर्ड की गणना करने के लिए वेरिएबल का उपयोग करें विभाजन:

SELECT q_id, position, qtn, level, rn
FROM (
  SELECT q_id, position, qtn, level,
           @rn := IF(@pos = position, @rn + 1,
                   IF(@pos := position, 1, 1)) AS rn
  FROM (
    SELECT *
    FROM tbl_question     
    WHERE level = '1'
    ORDER BY position, rand() ) a
  CROSS JOIN (SELECT @rn := 0, @pos := 0) AS vars ) b
WHERE b.rn <= 2  
ORDER BY position

बाहरी क्वेरी @rn . का उपयोग करती है प्रत्येक position . से केवल दो रिकॉर्ड चुनने के लिए विभाजन।

यहां डेमो करें



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysql तालिका में अंतिम कॉलम कैसे जोड़ें

  2. प्रदर्शन शुरू होने से पहले MySQL डेटाबेस कितना बड़ा हो सकता है

  3. श्वेतसूची आईपी पते cPanel का उपयोग करते हैं

  4. जावास्क्रिप्ट को डेट ऑब्जेक्ट में mysql डेट फॉर्मेट में बदलें (YYYY-MM-DD)

  5. दो डेटाबेस की संरचनाओं की तुलना करें?