रैंडम नंबर डालने के लिए MySQL के RAND() फ़ंक्शन का उपयोग करें।
आइए पहले एक टेबल बनाते हैं:
mysql> create table DemoTable (
Value int );
Query OK, 0 rows affected (0.46 sec)
इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें:
mysql> insert into DemoTable values(10); Query OK, 1 row affected (0.15 sec) mysql> insert into DemoTable values(20); Query OK, 1 row affected (0.10 sec) mysql> insert into DemoTable values(30); Query OK, 1 row affected (0.08 sec)
सेलेक्ट स्टेटमेंट का उपयोग करके टेबल से सभी रिकॉर्ड प्रदर्शित करें:
mysql> select * from DemoTable;
यह निम्नलिखिक आउटपुट देगा:
+-------+ | Value | +-------+ | 10 | | 20 | | 30 | +-------+ 3 rows in set (0.00 sec)
MySQL में टेबल में रैंडम नंबर डालने की क्वेरी
mysql> update DemoTable set Value=FLOOR(@number * rand()) + 1; Query OK, 3 rows affected (0.17 sec) Rows matched: 3 Changed: 3 Warnings: 0
आइए टेबल रिकॉर्ड एक बार फिर जांचें:
mysql> select * from DemoTable;
यह निम्नलिखिक आउटपुट देगा:
+-------+ | Value | +-------+ | 2 | | 2 | | 1 | +-------+ 3 rows in set (0.00 sec)
व्याख्या और सुधार
- दिए गए उदाहरण में
@numberअपरिभाषित है (NULL), इसलिए परिणाम अप्रत्याशित हैं - सही तरीका:
UPDATE DemoTable SET Value = FLOOR(100 * RAND()) + 1(1 से 100 तक) RAND()0 से 1 के बीच यादृच्छिक फ्लोट देता हैFLOOR(N * RAND()) + 11 से N तक पूर्णांक देता है
बेहतर: INSERT के साथ रैंडम मान
INSERT INTO DemoTable (Value) VALUES (FLOOR(100 * RAND()) + 1);
सीड के साथ पुनरुत्पादन योग्य यादृच्छिकता
SELECT RAND(42); -- हमेशा समान अनुक्रम देता है