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

MySQL रैंडम रिजल्ट ग्रुप बाय ऑर्डर द्वारा

आपकी क्वेरी एसक्यूएल मानक के खिलाफ है क्योंकि आप उन चुनिंदा सूची में कॉलम सूचीबद्ध करते हैं जिन्हें आप समूह में समूह में सूचीबद्ध नहीं करते हैं, न ही कुल कार्यों के अधीन हैं, जैसे गिनती()। MySQL कुछ sql मोड सेटिंग्स के तहत इस कार्यक्षमता की अनुमति देता है।

हालाँकि, भले ही यह कार्यक्षमता सक्षम हो, MySQL में प्रतिबंध हैं गैर-एकत्रित फ़ील्ड से चुना गया डेटा :

इसलिए, ग्रुप बाय का उपयोग करने के बजाय, आउटपुट को सीमित करने के लिए सॉर्टिंग और लिमिट क्लॉज का उपयोग करें:

select * from job
    where type = 1
    order by rand()
    limit 1

कृपया यह भी ध्यान दें कि यह यादृच्छिक चयन विधि बहुत संसाधन गहन है, क्योंकि MySQL को पहले किसी भी अनुक्रमणिका का उपयोग किए बिना पूरे परिणामसेट को सॉर्ट करना होता है। order by rand() . का उपयोग किए बिना किसी तालिका से यादृच्छिक रूप से डेटा का चयन करने के अन्य तरीके हैं .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. आप एक कॉल करने योग्य स्टेटमेंट से एकाधिक परिणाम कैसे प्राप्त करते हैं?

  2. मैं दो पंक्तियों की तुलना कैसे करूं और दो पंक्तियों की समानता को दूसरे कॉलम में कैसे संग्रहीत करूं?

  3. MySQL में कर्सर का उपयोग करते समय DECLARE कथन से संग्रहीत कार्यविधि को कॉल करें

  4. mysql डेटाबेस से केवल डुप्लिकेट रिकॉर्ड का चयन करें

  5. mysql_fetch_row () बनाम mysql_fetch_assoc () बनाम mysql_fetch_array ()