Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में दो मानों के बीच रैंडम (यादृच्छिक) संख्या प्राप्त करें: RAND() और FLOOR()

MySQL में निर्दिष्ट रेंज (न्यूनतम से अधिकतम) के बीच रैंडम इंटीजर जनरेट करना

MySQL में RAND() फंक्शन 0 से 1 के बीच फ्लोटिंग-पॉइंट संख्या देता है। इसे मनचाही रेंज में बदलने के लिए गणितीय फॉर्मूला उपयोग करें।

सिंटैक्स:

SELECT FLOOR(RAND() * (maximumValue - minimumValue) + minimumValue) AS anyVariableName;

फॉर्मूला समझाया:

  • RAND() → 0.0 से 1.0 के बीच रैंडम दशमलव
  • (max - min) → रेंज का आकार
  • RAND() * range → 0 से range के बीच रैंडम
  • + min → रेंज को min से शुरू करने के लिए शिफ्ट
  • FLOOR() → दशमलव हटाकर इंटीजर बनाता है

व्यावहारिक उदाहरण: 100 से 200 के बीच

mysql> SELECT FLOOR(RAND() * (200 - 100) + 100) AS RandomValue;
+-------------+ 
| RandomValue | 
+-------------+ 
| 144         | 
+-------------+ 
1 row in set (0.00 sec)

दुबारा चलाने पर अलग मान:

mysql> SELECT FLOOR(RAND() * (200 - 100) + 100) AS RandomValue;
+-------------+ 
| RandomValue | 
+-------------+ 
| 184         | 
+-------------+ 
1 row in set (0.00 sec)

उन्नत उपयोग:

एक क्वेरी में कई रैंडम मान:

SELECT 
    FLOOR(RAND() * 100) + 1 AS num1,
    FLOOR(RAND() * 100) + 1 AS num2,
    FLOOR(RAND() * 100) + 1 AS num3;

टेबल से रैंडम रो चुनें:

SELECT * FROM your_table ORDER BY RAND() LIMIT 1;

रिप्रोड्यूसिबल रैंडमनेस (सीड के साथ):

SELECT FLOOR(RAND(42) * 100) + 1; -- हमेशा समान परिणाम देगा

प्रदर्शन नोट:

  • ORDER BY RAND() बड़ी टेबल पर धीमा होता है (फुल टेबल स्कैन + सॉर्ट)
  • बड़ी टेबल के लिए: WHERE id >= (SELECT FLOOR(RAND() * (SELECT MAX(id) FROM table))) बेहतर है
  1. - MySQL में CASE और ORDER BY का उपयोग करके दो दिनों के बीच अगला निकटतम दिन प्राप्त करना

    MySQL में अगली आगामी तिथि ढूंढना वर्तमान दिनांक के बाद की अगली निकटतम तिथि ढूंढने के लिए, भविष्य की तिथियों को प्राथमिकता देने और फिर निकटतम को क्रमबद्ध करने के लिए CASE स्टेटमेंट के साथ ORDER BY का उपयोग करें। उदाहरण: अगली शिपिंग तिथि ढूंढना SELECT NOW(); +---------------------+ | now()

  1. - MySQL में BETWEEN ऑपरेटर का उपयोग करके विभिन्न मानों के बीच मान प्राप्त करना

    MySQL BETWEEN के साथ स्ट्रिंग रेंज फ़िल्टरिंग MySQL का BETWEEN ऑपरेटर संख्याओं और दिनांकों के अलावा स्ट्रिंग्स पर भी काम करता है, वर्ण क्रम (कोलेशन के आधार पर) का उपयोग करके। यह कोड, पहचानकर्ता या श्रेणियों के लिए रेंज फ़िल्टरिंग के लिए उपयोगी है। उदाहरण: कर्मचारी कोड रेंज SELECT * FROM DemoTable1

  1. - MySQL में TIMESTAMPDIFF का उपयोग करके दो DATETIME मानों के बीच अंतर ज्ञात करें

    MySQL में दो DATETIME मानों के बीच अंतर की गणना MySQL में TIMESTAMPDIFF() फ़ंक्शन दो डेटाइम मानों के बीच निर्दिष्ट इकाई (सेकंड, मिनट, घंटे, दिन, आदि) में अंतर लौटाता है। DATEDIFF() के विपरीत जो केवल दिन लौटाता है, TIMESTAMPDIFF लचीला है। टेबल बनाना ); Query OK, 0 rows affected (0.86 sec) डेटा डाल