SQLite random()
फ़ंक्शन -9223372036854775808 और +9223372036854775807 के बीच एक छद्म-यादृच्छिक पूर्णांक देता है।
एक छद्म यादृच्छिक संख्या एक संख्या है जो यादृच्छिक प्रतीत होती है, लेकिन वास्तव में यादृच्छिक नहीं है। एक छद्म यादृच्छिक संख्या वास्तव में यादृच्छिक नहीं है क्योंकि इसका मूल्य ज्ञात बीज द्वारा उत्पन्न किया गया था। हालांकि, एक छद्म-यादृच्छिक संख्या यादृच्छिक प्रतीत होगी यदि उपयोगकर्ता को उस बीज या एल्गोरिथम का कोई ज्ञान नहीं है जिसने इसे बनाया है।
इसलिए, छद्म यादृच्छिक संख्याओं को अक्सर कई अनुप्रयोगों के लिए काफी अच्छा माना जाता है।
उदाहरण
यहां random()
. के साथ छद्म-यादृच्छिक संख्या उत्पन्न करने का एक उदाहरण दिया गया है समारोह।
SELECT random();
परिणाम:
-882536775989953141
केवल सकारात्मक मान
आप random()
combine को मिला सकते हैं abs()
. के साथ केवल सकारात्मक मान उत्पन्न करने के लिए।
SELECT abs(random());
इस मामले में, यदि random()
एक नकारात्मक मान उत्पन्न करता है, abs()
इसके बजाय निरपेक्ष मान लौटाएगा।
यह प्रदर्शित करने के लिए कि कैसे abs()
काम करता है, अगर मैं पहले उदाहरण से (नकारात्मक) यादृच्छिक संख्या को abs()
में पास कर दूं तो क्या होगा समारोह:
SELECT abs(-882536775989953141);
परिणाम:
882536775989953141
तो अगर हम random()
. पास करते हैं करने के लिए abs()
, और random()
एक नकारात्मक मान उत्पन्न करता है, abs()
उस मान को सकारात्मक मान के रूप में लौटाएगा।
0 और 100 के बीच का मान
यहां 0 और 100 के बीच एक धनात्मक संख्या उत्पन्न करने का एक उदाहरण दिया गया है।
SELECT abs(random() % 100);
यहां एक से अधिक यादृच्छिक मानों को चुनने का एक उदाहरण दिया गया है।
SELECT
abs(random() % 100) AS R1,
abs(random() % 100) AS R2,
abs(random() % 100) AS R3;
परिणाम:
R1 R2 R3 ---------- ---------- ---------- 17 79 90
यादृच्छिक पंक्तियां लौटाएं
आप random()
का उपयोग कर सकते हैं ORDER BY
. में यादृच्छिक पंक्तियों को वापस करने के लिए डेटाबेस क्वेरी का खंड।
यहाँ एक उदाहरण है।
SELECT * FROM Artist
ORDER BY random() LIMIT 5;
परिणाम:
ArtistId Name ---------- ---------------------------------------- 131 Smashing Pumpkins 127 Red Hot Chili Peppers 169 Black Eyed Peas 60 Santana Feat. Dave Matthews 240 Gustav Mahler
और अगर मैं इसे फिर से चलाता हूं तो मुझे यह मिलता है:
ArtistId Name ---------- ---------------------------------------- 234 Orchestra of The Age of Enlightenment 126 Raul Seixas 76 Creedence Clearwater Revival 182 Nega Gizza 63 Santana Feat. Lauryn Hill & Cee-Lo
यदि आपके पास एक बड़ी तालिका है, तो हो सकता है कि आप अपनी क्वेरी को कुछ इस तरह संशोधित करना चाहें:
SELECT * FROM Artist
WHERE ArtistId IN
(SELECT ArtistId FROM Artist ORDER BY random() LIMIT 5);
परिणाम:
ArtistId Name ---------- ---------------------------------------- 45 Sandra De Sá 105 Men At Work 110 Nirvana 205 Chris Cornell 267 Göteborgs Symfoniker & Neeme Järvi