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

MySQL दो तालिकाओं से जॉइन के साथ यादृच्छिक पंक्ति का चयन करें

यह वह छँटाई है जो आपको धीमा कर रही है। यादृच्छिक रूप से छाँटने के बजाय, बस एक यादृच्छिक product_db.unique_idका चयन करें

अपनी क्वेरी में, ORDER BY RAND() . को बदलें साथ:

AND product_db.unique_id >= ROUND(RAND()*(SELECT MAX(unique_id) FROM product_db))

>= . का उपयोग करके = . के बजाय यदि डेटाबेस से unique_id हटा दिया गया है। रैंड द्वारा ऑर्डर करने के परिणाम के रूप में यादृच्छिक नहीं है, लेकिन क्वेरी बहुत तेजी से निष्पादित होगी। यदि आप चाहें, तो आप = . के साथ कई क्वेरी चला सकते हैं जब तक कोई परिणाम नहीं मिल जाता है और यह अभी भी उन सभी परिणामों को छांटने की तुलना में काफी तेज हो सकता है।

एक स्पष्ट जॉइन के साथ यह होगा:

SELECT product_db.image
FROM product_db
JOIN product_page ON product_db.unique_id = product_page.product_unique_id
WHERE product_page.page_id = 3 
AND product_db.status = 'Online' 
AND product_db.unique_id >= ROUND(RAND()*(SELECT MAX(unique_id) FROM product_db))
LIMIT 1


  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 में TO_BASE64 () फ़ंक्शन कैसे काम करता है

  3. लेन-देन, पंक्ति-स्तरीय लॉकिंग और विदेशी कुंजियों का समर्थन करता है

  4. PDOException SQLSTATE [HY000] [2002] ऐसी कोई फ़ाइल या निर्देशिका नहीं

  5. मायबैटिस के साथ पेजिनेशन कैसे करें?