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

SQL क्वेरी के प्रत्येक निष्पादन पर यादृच्छिक अद्वितीय रिकॉर्ड का चयन कैसे करें

चूंकि आप RAND() . को एक बीज पैरामीटर पास कर सकते हैं फ़ंक्शन, आप पहले पृष्ठ से पहले एक बीज उत्पन्न करके यादृच्छिक परिणामों को "पृष्ठांकित" कर सकते हैं।

नमूना कोड:पहले पृष्ठ के लिए (भाषा के अनुसार भिन्न होता है):

int seed = Math.abs(new Random().nextInt());

SQL क्वेरी:

SELECT url FROM masterurls ORDER BY RAND({seed}) LIMIT 200;

बीज को कहीं स्टोर करें (वेब-आधारित अनुप्रयोगों के लिए आप यूआरएल पैरामीटर या सत्र का उपयोग कर सकते हैं)। अगले पृष्ठों के लिए:

SELECT url FROM masterurls ORDER BY RAND({seed}) LIMIT 200 * {pageNumber}, 200;

नोट:RAND() के आधार पर छांटना एक भारी ऑपरेशन है, तो बेहतर होगा कि आप url के हैश कोड के साथ एक अनुक्रमित कॉलम को संग्रहीत करें, फिर मॉड्यूल-आधारित या अन्य यादृच्छिक कार्यों का उपयोग करें।



  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_data_seek pdo समकक्ष

  2. दो अक्षांश/लंबे बिंदुओं के बीच की दूरी ज्ञात करने का सबसे तेज़ तरीका

  3. MySQL में स्ट्रीम त्रुटि के पिछले छोर को पढ़ने का प्रयास किया गया

  4. लारवेल माइग्रेशन - अखंडता बाधा उल्लंघन:1452 चाइल्ड पंक्ति को जोड़ या अपडेट नहीं कर सकता:एक विदेशी कुंजी बाधा विफल हो जाती है

  5. GROUP BY और ORDER BY के साथ MySQL गलत परिणाम देता है