2012-03-30 12 views
13

मेरे पास एक एमएस एक्सेस डेटाबेस है। उसमें, एक तालिका में प्राथमिक कुंजी प्रश्न आईडी के साथ प्रश्न और उत्तर होते हैं। मुझे प्रश्नपत्र का उपयोग करके उस तालिका से यादृच्छिक प्रश्न पुनर्प्राप्त करने की आवश्यकता है। इस परिदृश्य के लिए मुझे किस कीवर्ड या क्वेरी का उपयोग करना चाहिए।एमएस एक्सेस डेटाबेस से यादृच्छिक रिकॉर्ड कैसे प्राप्त करें

उत्तर

13

निम्नलिखित अपनी मेज से एक यादृच्छिक questionID मिल जाएगा

MySQL

SELECT questionID FROM questions ORDER BY RAND() LIMIT 1 

एमएस एक्सेस

SELECT top 1 questionID from questions ORDER BY rnd(questionID) 
+8

एमएस एक्सेस के लिए संस्करण, यादृच्छिक रिकॉर्ड उत्पन्न करने लगता है - लेकिन हर बार एक ही! – kneidels

+1

सहमत .. एक ही यादृच्छिक रिकॉर्ड –

23

विभिन्न यादृच्छिक रिकॉर्ड आप उपयोग कर सकते हैं, जो एक आईडी क्षेत्र की आवश्यकता होगी प्राप्त करने के लिए आपकी तालिका में

SELECT TOP 1 questionID FROM questions ORDER BY Rnd(-(100000*questionID)*Time()) 

आरएनडी-फ़ंक्शन के पैरामीटर के रूप में पारित ऋणात्मक मान इस पैरामीटर का उपयोग प्रारंभ मान के रूप में जनरेटर से पहला यादृच्छिक मान प्रदान करेगा। (परिभाषित यादृच्छिक एक प्रकार)। टिप्पणियों से @ कोबिक के संकेत के लिए विशेष धन्यवाद।

+2

मजेदार बात। मैंने सभी सुझाए गए उत्तरों का परीक्षण किया है जिसमें मुझे अलग/यादृच्छिक रिकॉर्ड मिलते हैं। लेकिन जैसे ही मैं अपना टेस्ट प्रोग्राम फिर से चलाता हूं, परिणाम पहले जैसा ही अनुक्रम में होते हैं। जैसे कि यादृच्छिक बीज जनरेटर प्रत्येक बार एमएस-एक्सेस में रीसेट करता है। बाद में मैंने यह पाया: [यादृच्छिक संख्या जेनरेटर क्वेरी नहीं तो यादृच्छिक] (http://database.ittoolbox.com/groups/technical-functional/access-l/random-number-generator-query-not-so- यादृच्छिक- 3887838) – kobik

+0

यह वही काम करता है, प्रत्येक बार जब मैं इसे चलाता हूं तो मुझे 4 परिणाम –

+0

मिलते हैं, तो आप @ कोबिक –

4
SELECT TOP 5 questionID FROM [tableName] ORDER BY rnd(INT(NOW*questionID)-NOW*questionID) 

यह आपको जवाब का एक नया सेट हर बार, आप भी जब आप "अब" का उपयोग एक समय बनाने के लिए की जरूरत नहीं है (जो हर बार एक नई समय होगा दे देंगे तो आप इस कोई फर्क नहीं पड़ता क्लिक करें आप कितनी तेजी से क्लिक करते हैं), मेरी राय में एक्सेस में इसे हल करने का सबसे सरल और साफ तरीका।

+0

यह मेरे लिए बिल्कुल ठीक काम करता है। अन्य सभी विधियां रिकॉर्ड के समान सेट देती हैं। अच्छा कार्य। – MatVAD

संबंधित मुद्दे