एक ही क्वेरी में RAND() को बिना सीड के कई बार कॉल करने पर हर बार अलग मान उत्पन्न होता है।
उदाहरण
mysql> SELECT RAND(), RAND(), RAND();
+--------------------+-------------------+--------------------+
| RAND() | RAND() | RAND() |
+--------------------+-------------------+--------------------+
| 0.9402844448949066 | 0.911499003797303 | 0.7366417150354402 |
+--------------------+-------------------+--------------------+
व्याख्या
- प्रत्येक
RAND()कॉल आंतरिक रैंडम स्टेट को आगे बढ़ाता है - तीनों कॉल स्वतंत्र रूप से मूल्यांकित होते हैं
- परिणाम: तीन अलग रैंडम संख्याएं
सीड के साथ तुलना
mysql> SELECT RAND(42), RAND(42), RAND(42);
+---------------------+---------------------+---------------------+
| RAND(42) | RAND(42) | RAND(42) |
+---------------------+---------------------+---------------------+
| 0.620... | 0.620... | 0.620... |
+---------------------+---------------------+---------------------+
सीड दिए जाने पर हर कॉल समान मान देता है।
व्यावहारिक निहितार्थ
-- गलत: दोनों कॉल अलग मान देंगे
SELECT RAND() AS a, RAND() AS b;
-- सही: एक बार कॉल करें, चर में स्टोर करें (यदि संभव)
-- या सीड उपयोग करें यदि समान मान चाहिए
नोट: MySQL में चर असाइनमेंट @r := RAND() से एक ही क्वेरी में पुन: उपयोग संभव है।