वर्तमान तिथि के आधार पर यादृच्छिक संख्या जनरेटर के लिए बीज का प्रयोग करें:
ORDER BY RAND(20120714) LIMIT 1
मैं इस बात को लेकर भी उत्सुक हूं कि आप यहां "अन्य" से क्या मतलब रखते हैं:
यदि आप एक भिन्न . का चयन करना चाहते हैं यादृच्छिक उद्धरण प्रत्येक दिन तो आपको एक साधारण ORDER BY RAND(seed)
. का उपयोग नहीं करना चाहिए . यह एक ही उद्धरण को लगातार तीन दिन लौटा सकता है।
यदि आप ऐसा होने से बचना चाहते हैं तो आप इसके बजाय स्टोर कर सकते हैं कि प्रत्येक दिन के लिए कौन सा उद्धरण चुना गया है और पिछले n दिनों में उपयोग नहीं किए गए उद्धरणों में से एक यादृच्छिक उद्धरण चुनें। बेशक, यदि आप किसी उद्धरण का अंतिम बार उपयोग किए जाने पर संग्रहीत कर रहे हैं तो आपकी मूल समस्या का एक प्राकृतिक समाधान भी है:
- वह उद्धरण देखें जो पिछली बार आज उपयोग किया गया था।
- यदि कोई है, तो वह दिन का उद्धरण है।
- यदि नहीं, तो उन पंक्तियों से दिन का एक नया उद्धरण चुनें जिनका पिछले n दिनों में उपयोग नहीं किया गया है, और यह दिखाने के लिए पंक्ति को अपडेट करें कि यह आज के दिन का उद्धरण है।
ठीक है, थोड़ा अलग तरीका कैसा रहेगा:
ORDER BY RAND(201207) LIMIT 14, 1
-- yyyymm dd
अब आपको एक अतिरिक्त कॉलम की आवश्यकता नहीं है और आपको दोहराव नहीं मिलेगा, सिवाय इसके कि जब महीना बदल जाए। यह समाधान मानता है कि आपके पास चुनने के लिए कम से कम 32 उद्धरण हैं।