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

MySQL में मौजूदा फील्ड में 30 से 300 के बीच रैंडम नंबर जोड़ना

समाधान: RAND() और FLOOR() के साथ UPDATE

किसी कॉलम के मान में एक निर्दिष्ट सीमा के भीतर रैंडम संख्या जोड़ने के लिए RAND() और FLOOR() का संयोजन उपयोग करें।

सिंटैक्स

UPDATE yourTableName 
SET yourColumn = yourColumn + FLOOR(RAND() * (max - min + 1)) + min
WHERE yourCondition;

व्यावहारिक उदाहरण

टेबल बनाना और डेटा डालना

mysql> CREATE TABLE RandomNumberDemo (MyNumber INT);

mysql> INSERT INTO RandomNumberDemo VALUES (17), (18), (29);

रैंडम संख्या जोड़ना (30-300 के बीच, जहां MyNumber=18)

mysql> UPDATE RandomNumberDemo 
    -> SET MyNumber = MyNumber + FLOOR(RAND() * (270 + 1)) + 30 
    -> WHERE MyNumber = 18;
Query OK, 1 row affected (0.20 sec)

गणना व्याख्या

  • RAND(): 0 से 1 के बीच रैंडम दशमलव (0 ≤ r < 1)
  • RAND() * 271: 0 से 270.999... के बीच
  • FLOOR(...): 0 से 270 तक पूर्णांक
  • + 30: 30 से 300 तक शिफ्ट
  • परिणाम: 30-300 के बीच रैंडम पूर्णांक

परिणाम (उदाहरण)

MyNumber (पहले)जोड़ा गया रैंडमMyNumber (बाद में)
17-17
18140158
29-29

सामान्य फॉर्मूला

-- [min, max] समावेशी रेंज
FLOOR(RAND() * (max - min + 1)) + min

-- उदाहरण:
FLOOR(RAND() * 100) + 1        -- 1 से 100
FLOOR(RAND() * 1000) + 100     -- 100 से 1099
FLOOR(RAND() * (500 - 100 + 1)) + 100  -- 100 से 500

सभी पंक्तियों के लिए अलग-अलग रैंडम मान

UPDATE RandomNumberDemo 
SET MyNumber = MyNumber + FLOOR(RAND() * 271) + 30;

प्रत्येक पंक्ति के लिए अलग रैंडम मान उत्पन्न होता है।

निर्धारित रैंडमनेस (परीक्षण के लिए)

UPDATE RandomNumberDemo 
SET MyNumber = MyNumber + FLOOR(0.5 * 271) + 30;  -- हमेशा 165 जोड़ता है

चेतावनी

  • RAND() प्रत्येक पंक्ति के लिए एक बार मूल्यांकन होता है
  • WHERE क्लॉज में RAND() अप्रत्याशित परिणाम दे सकता है
  • बड़े बैच अपडेट में प्रदर्शन प्रभाव
  • क्रिप्टोग्राफिक उपयोग के लिए उपयुक्त नहीं
  1. - MySQL में एक ही क्वेरी में कॉलम और इंडेक्स कैसे जोड़ें?

    इसके लिए ALTER के साथ ADD का उपयोग करें। सिंटैक्स: alter table yourTableName add yourColumnName DATETIME DEFAULT NOW(), add index(yourColumnName); उदाहरण टेबल बनाएं: mysql> create table DemoTable ( -> Id int NOT NULL AUTO_INCREMENT, -> Name varchar(100), -> PRIMARY KEY(Id)

  1. - MySQL में RAND() फ़ंक्शन का उपयोग करके 4-अंकीय रैंडम संख्या उत्पन्न करना

    MySQL में RAND() फ़ंक्शन और गणितीय संक्रियाओं का उपयोग करके 4-अंकीय (1000-9999) रैंडम संख्या उत्पन्न की जा सकती है। यह पासवर्ड, OTP, या पिन जनरेशन के लिए उपयोगी है। सिंटैक्स SELECT FLOOR(1000 + RAND() * 9000); -- 1000 से 9999 के बीच या सरल रूप में (0000-9999 के लिए): SELECT FLOOR(RAND() * 10000);

  1. - एकल MySQL क्वेरी के साथ किसी तिथि में एक वर्ष और दो दिन कैसे जोड़ें

    DATE_ADD और INTERVAL का उपयोग करके तिथि में समय जोड़ना इसके लिए MySQL में INTERVAL का उपयोग करें। पहले टेबल बनाएं: create table DemoTable1376 ( AdmissionDate date ); Query OK, 0 rows affected (0.68 sec) रिकॉर्ड डालें: insert into DemoTable1376 values(2019-03-14); Query OK, 1 row affected (0.17 sec