MariaDB में एक RAND()
शामिल है फ़ंक्शन जो एक यादृच्छिक संख्या देता है। अधिक सटीक रूप से, यह एक DOUBLE
देता है सटीक फ़्लोटिंग पॉइंट मान v
श्रेणी में 0 <= v < 1.0
।
यह बहुत अच्छा है, लेकिन क्या होगा यदि आप एक बड़ी सीमा के भीतर एक पूर्णांक उत्पन्न करना चाहते हैं - और एक सीमा जिसे आप निर्दिष्ट करते हैं?
सौभाग्य से, ऐसा करने के लिए एक आसान तकनीक है।
तकनीक
एक विशिष्ट श्रेणी के भीतर एक यादृच्छिक पूर्णांक लौटाने वाली कुंजी निम्नलिखित सिंटैक्स में है:
FLOOR(min_value + RAND() * (max_value - min_value +1))
यह FLOOR()
. का उपयोग करता है सबसे बड़ा पूर्णांक मान इसके तर्क से अधिक नहीं लौटाने के लिए कार्य करता है। हमारे RAND()
. के रूप में देख रहे हैं फ़ंक्शन तर्क का हिस्सा है, हमें अपने आवश्यक न्यूनतम और अधिकतम यादृच्छिक मूल्यों को निर्दिष्ट करने के लिए कुछ और गणनाओं को लागू करने की आवश्यकता है।
1 और 10 के बीच एक यादृच्छिक पूर्णांक उत्पन्न करें
तो, उपरोक्त सिंटैक्स का उपयोग करते हुए, यहां 1 और 10 के बीच एक यादृच्छिक पूर्णांक उत्पन्न करने का एक उदाहरण दिया गया है:
SELECT FLOOR(1 + RAND() * (10 - 1 +1));
परिणाम:
+---------------------------------+ | FLOOR(1 + RAND() * (10 - 1 +1)) | +---------------------------------+ | 7 | +---------------------------------+
यादृच्छिक प्रभाव देखने के लिए इसे कुछ और कहते हैं:
SELECT
FLOOR(1 + RAND() * (10 - 1 +1)) AS r1,
FLOOR(1 + RAND() * (10 - 1 +1)) AS r2,
FLOOR(1 + RAND() * (10 - 1 +1)) AS r3,
FLOOR(1 + RAND() * (10 - 1 +1)) AS r4,
FLOOR(1 + RAND() * (10 - 1 +1)) AS r5,
FLOOR(1 + RAND() * (10 - 1 +1)) AS r6,
FLOOR(1 + RAND() * (10 - 1 +1)) AS r7,
FLOOR(1 + RAND() * (10 - 1 +1)) AS r8;
परिणाम:
+----+----+----+----+----+----+----+----+ | r1 | r2 | r3 | r4 | r5 | r6 | r7 | r8 | +----+----+----+----+----+----+----+----+ | 3 | 6 | 10 | 4 | 6 | 10 | 1 | 6 | +----+----+----+----+----+----+----+----+
1 और 100 के बीच एक यादृच्छिक पूर्णांक उत्पन्न करें
1 और 100 के बीच एक यादृच्छिक संख्या उत्पन्न करने के लिए, हमें केवल 10 को 100 से बदलना होगा:
SELECT FLOOR(1 + RAND() * (100 - 1 +1));
परिणाम:
+----------------------------------+ | FLOOR(1 + RAND() * (100 - 1 +1)) | +----------------------------------+ | 87 | +----------------------------------+
यादृच्छिक प्रभाव देखने के लिए इसे कुछ और कहते हैं:
SELECT
FLOOR(1 + RAND() * (100 - 1 +1)) AS r1,
FLOOR(1 + RAND() * (100 - 1 +1)) AS r2,
FLOOR(1 + RAND() * (100 - 1 +1)) AS r3,
FLOOR(1 + RAND() * (100 - 1 +1)) AS r4,
FLOOR(1 + RAND() * (100 - 1 +1)) AS r5,
FLOOR(1 + RAND() * (100 - 1 +1)) AS r6,
FLOOR(1 + RAND() * (100 - 1 +1)) AS r7,
FLOOR(1 + RAND() * (100 - 1 +1)) AS r8;
परिणाम:
+----+----+----+----+----+----+----+----+ | r1 | r2 | r3 | r4 | r5 | r6 | r7 | r8 | +----+----+----+----+----+----+----+----+ | 61 | 45 | 41 | 68 | 19 | 92 | 99 | 18 | +----+----+----+----+----+----+----+----+
10000 और 50000 के बीच एक यादृच्छिक पूर्णांक उत्पन्न करें
चलिए एक और करते हैं, इस बार 10000 और 50000 के बीच एक यादृच्छिक संख्या उत्पन्न करते हैं:
SELECT FLOOR(10000 + RAND() * (50000 - 10000 +1));
परिणाम:
+--------------------------------------------+ | FLOOR(10000 + RAND() * (50000 - 10000 +1)) | +--------------------------------------------+ | 46884 | +--------------------------------------------+
और यादृच्छिक प्रभाव देखने के लिए कुछ और कॉल:
SELECT
FLOOR(10000 + RAND() * (50000 - 10000 +1)) AS r1,
FLOOR(10000 + RAND() * (50000 - 10000 +1)) AS r2,
FLOOR(10000 + RAND() * (50000 - 10000 +1)) AS r3,
FLOOR(10000 + RAND() * (50000 - 10000 +1)) AS r4,
FLOOR(10000 + RAND() * (50000 - 10000 +1)) AS r5,
FLOOR(10000 + RAND() * (50000 - 10000 +1)) AS r6,
FLOOR(10000 + RAND() * (50000 - 10000 +1)) AS r7,
FLOOR(10000 + RAND() * (50000 - 10000 +1)) AS r8;
परिणाम:
+-------+-------+-------+-------+-------+-------+-------+-------+ | r1 | r2 | r3 | r4 | r5 | r6 | r7 | r8 | +-------+-------+-------+-------+-------+-------+-------+-------+ | 13688 | 37790 | 17884 | 46052 | 46608 | 44880 | 34578 | 28249 | +-------+-------+-------+-------+-------+-------+-------+-------+