परिचय
MySQL में ORDER BY RAND() का उपयोग करके रैंडम क्रम में पंक्तियाँ प्राप्त की जा सकती हैं। यदि डुप्लिकेट मानों को एक साथ समूहित रखते हुए रैंडम क्रम चाहिए, तो एक्सप्रेशन RAND(कॉलम * स्थिरांक * RAND()) का उपयोग किया जा सकता है।
टेबल निर्माण और डेटा सम्मिलन
mysql> create table DemoTable (
-> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> StudentMarks int
-> );
Query OK, 0 rows affected (0.58 sec)
mysql> insert into DemoTable(StudentMarks) values(98);
mysql> insert into DemoTable(StudentMarks) values(98);
mysql> insert into DemoTable(StudentMarks) values(78);
mysql> insert into DemoTable(StudentMarks) values(78);
mysql> insert into DemoTable(StudentMarks) values(45);
mysql> insert into DemoTable(StudentMarks) values(56);
सभी रिकॉर्ड प्रदर्शित करना
mysql> select * from DemoTable; +-----------+--------------+ | StudentId | StudentMarks | +-----------+--------------+ | 1 | 98 | | 2 | 98 | | 3 | 78 | | 4 | 78 | | 5 | 45 | | 6 | 56 | +-----------+--------------+ 6 rows in set (0.00 sec)
समूहित रैंडम क्रम के लिए क्वेरी
mysql> select * from DemoTable order by rand(StudentMarks*100*RAND());
आउटपुट (उदाहरण)
+-----------+--------------+ | StudentId | StudentMarks | +-----------+--------------+ | 3 | 78 | | 6 | 56 | | 5 | 45 | | 4 | 78 | | 1 | 98 | | 2 | 98 | +-----------+--------------+ 6 rows in set (0.00 sec)
व्याख्या
RAND(StudentMarks*100*RAND())एक्सप्रेशन समानStudentMarksवाली पंक्तियों के लिए समान रैंडम मान उत्पन्न करता है, जिससे वे एक साथ रहती हैं।- यह तकनीक डेटा के समूहों को रैंडमाइज़ करते समय समूह की अखंडता बनाए रखती है।
- नोट:
RAND()के साथ सीड मान का उपयोग डिटरमिनिस्टिक रैंडमनेस देता है।