एक रेंज में रैंडम नंबर के लिए, आपको MySQL से RAND() मेथड का उपयोग करने की आवश्यकता है। अपडेट के लिए सिंटैक्स इस प्रकार है:
UPDATE yourTableName SET yourColumnName = value WHERE yourColumnName2 = (SELECT FLOOR(1 + RAND() * 3));
उपरोक्त क्वेरी में, स्टेटमेंट FLOOR(1 + RAND() * 3) 1-3 के बीच नंबर उत्पन्न करता है और कॉलम को अपडेट करता है।
उपरोक्त सिंटैक्स को समझने के लिए, पहले एक टेबल बनाते हैं। टेबल बनाने का क्वेरी:
mysql> CREATE TABLE updateRowWith1To3 (
-> Id INT,
-> Name VARCHAR(100)
-> ); Query OK, 0 rows affected (0.47 sec)
INSERT कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें:
mysql> INSERT INTO updateRowWith1To3 VALUES(1,'John'); Query OK, 1 row affected (0.24 sec) mysql> INSERT INTO updateRowWith1To3 VALUES(2,'Sam'); Query OK, 1 row affected (0.14 sec) mysql> INSERT INTO updateRowWith1To3 VALUES(3,'Carol'); Query OK, 1 row affected (0.14 sec) mysql> INSERT INTO updateRowWith1To3 VALUES(4,'Mike'); Query OK, 1 row affected (0.16 sec) mysql> INSERT INTO updateRowWith1To3 VALUES(5,'Bob'); Query OK, 1 row affected (0.10 sec) mysql> INSERT INTO updateRowWith1To3 VALUES(6,'David'); Query OK, 1 row affected (0.17 sec)
SELECT स्टेटमेंट का उपयोग करके टेबल से सभी रिकॉर्ड प्रदर्शित करें:
mysql> SELECT * FROM updateRowWith1To3;
आउटपुट
+------+-------+ | Id | Name | +------+-------+ | 1 | John | | 2 | Sam | | 3 | Carol | | 4 | Mike | | 5 | Bob | | 6 | David | +------+-------+ 6 rows in set (0.00 sec)
यहाँ वह क्वेरी है जिसका उपयोग कॉलम नाम को 1-3 के बीच रैंडम नंबर से अपडेट करने के लिए किया जा सकता है:
mysql> UPDATE updateRowWith1To3 SET Name = 'Mary' WHERE Id = (SELECT FLOOR(1 + RAND() * 3)); Query OK, 1 row affected (0.15 sec) Rows matched: 1 Changed: 1 Warnings: 0
अब आप टेबल चेक कर सकते हैं। कॉलम नाम को 1-3 के बीच Mary से अपडेट किया गया होगा। टेबल से रिकॉर्ड चेक करने का क्वेरी:
mysql> SELECT * FROM updateRowWith1To3;
आउटपुट
+------+-------+ | Id | Name | +------+-------+ | 1 | Mary | | 2 | Sam | | 3 | Carol | | 4 | Mike | | 5 | Bob | | 6 | David | +------+-------+ 6 rows in set (0.00 sec)