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

वर्तमान दिन के लिए यादृच्छिक पंक्ति कैसे प्राप्त करें?

वर्तमान तिथि के आधार पर यादृच्छिक संख्या जनरेटर के लिए बीज का प्रयोग करें:

ORDER BY RAND(20120714) LIMIT 1

मैं इस बात को लेकर भी उत्सुक हूं कि आप यहां "अन्य" से क्या मतलब रखते हैं:

यदि आप एक भिन्न . का चयन करना चाहते हैं यादृच्छिक उद्धरण प्रत्येक दिन तो आपको एक साधारण ORDER BY RAND(seed) . का उपयोग नहीं करना चाहिए . यह एक ही उद्धरण को लगातार तीन दिन लौटा सकता है।

यदि आप ऐसा होने से बचना चाहते हैं तो आप इसके बजाय स्टोर कर सकते हैं कि प्रत्येक दिन के लिए कौन सा उद्धरण चुना गया है और पिछले n दिनों में उपयोग नहीं किए गए उद्धरणों में से एक यादृच्छिक उद्धरण चुनें। बेशक, यदि आप किसी उद्धरण का अंतिम बार उपयोग किए जाने पर संग्रहीत कर रहे हैं तो आपकी मूल समस्या का एक प्राकृतिक समाधान भी है:

  • वह उद्धरण देखें जो पिछली बार आज उपयोग किया गया था।
  • यदि कोई है, तो वह दिन का उद्धरण है।
  • यदि नहीं, तो उन पंक्तियों से दिन का एक नया उद्धरण चुनें जिनका पिछले n दिनों में उपयोग नहीं किया गया है, और यह दिखाने के लिए पंक्ति को अपडेट करें कि यह आज के दिन का उद्धरण है।

ठीक है, थोड़ा अलग तरीका कैसा रहेगा:

ORDER BY RAND(201207) LIMIT 14, 1
--            yyyymm        dd

अब आपको एक अतिरिक्त कॉलम की आवश्यकता नहीं है और आपको दोहराव नहीं मिलेगा, सिवाय इसके कि जब महीना बदल जाए। यह समाधान मानता है कि आपके पास चुनने के लिए कम से कम 32 उद्धरण हैं।



  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. पीडीओ तालिका से एक कॉलम को 1-आयामी सरणी में लाता है

  3. लाखों पंक्तियों के लिए SSIS पैकेज का अनुकूलन SQL कमांड और मर्ज जॉइन में ऑर्डर बाय / सॉर्ट के साथ करें

  4. MySql को दैनिक, साप्ताहिक, मासिक और वार्षिक आधार पर रिकॉर्ड या डेटा मिलता है

  5. MySQL:एक ही तालिका से गिनती के साथ अद्यतन तालिका