MySQL में RAND() फ़ंक्शन और गणितीय संक्रियाओं का उपयोग करके 4-अंकीय (1000-9999) रैंडम संख्या उत्पन्न की जा सकती है। यह पासवर्ड, OTP, या पिन जनरेशन के लिए उपयोगी है।
सिंटैक्स
SELECT FLOOR(1000 + RAND() * 9000); -- 1000 से 9999 के बीच
या सरल रूप में (0000-9999 के लिए):
SELECT FLOOR(RAND() * 10000);
व्यावहारिक उदाहरण
1. टेबल बनाएं
mysql> CREATE TABLE DemoTable717 (
UserId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
UserPassword INT
);
Query OK, 0 rows affected (0.81 sec)
2. मौजूदा डेटा डालें
mysql> INSERT INTO DemoTable717 (UserPassword) VALUES (1454343), (674654), (989883), (909983); Query OK, 4 rows affected (0.20 sec)
3. 4-अंकीय रैंडम पासवर्ड से अपडेट करें
mysql> UPDATE DemoTable717 SET UserPassword = (SELECT FLOOR(RAND() * 10000)); Query OK, 4 rows affected (0.22 sec) Rows matched: 4 Changed: 4 Warnings: 0
4. परिणाम जांचें
mysql> SELECT * FROM DemoTable717; +--------+--------------+ | UserId | UserPassword | +--------+--------------+ | 1 | 4319 | | 2 | 3902 | | 3 | 6553 | | 4 | 1060 | +--------+--------------+ 4 rows in set (0.00 sec)
रैंडम संख्या जनरेशन के तरीके
| आवश्यकता | फॉर्मूला | सीमा |
|---|---|---|
| 4 अंक (0000-9999) | FLOOR(RAND() * 10000) | 0 - 9999 |
| 4 अंक (1000-9999) | FLOOR(1000 + RAND() * 9000) | 1000 - 9999 |
| 6 अंक OTP | FLOOR(100000 + RAND() * 900000) | 100000 - 999999 |
| n अंक | FLOOR(POW(10,n-1) + RAND() * 9 * POW(10,n-1)) | 10^(n-1) से 10^n-1 |
सुरक्षा नोट
क्रिप्टोग्राफिक उद्देश्यों के लिए (पासवर्ड, टोकन), MySQL के RAND() का उपयोग न करें क्योंकि यह क्रिप्टोग्राफिकली सुरक्षित नहीं है। इसके बजाय एप्लिकेशन लेयर पर सुरक्षित रैंडम जनरेटर का उपयोग करें।
लीडिंग जीरो के साथ स्ट्रिंग के रूप में
SELECT LPAD(FLOOR(RAND() * 10000), 4, '0') AS pin_code; -- परिणाम: '0432', '0019', '1234' आदि