जब हम किसी क्वेरी में ORDER BY और LIMIT क्लॉज के साथ RAND () फ़ंक्शन का उपयोग करते हैं, तो MySQL हर बार पंक्तियों या मानों के अलग-अलग सेट लौटाता है। इसे समझने के लिए निम्नलिखित रिकॉर्ड वाली एक तालिका 'कर्मचारी' पर विचार किया जाता है -
mysql> Select * from Employee; +----+--------+--------+ | ID | Name | Salary | +----+--------+--------+ | 1 | Gaurav | 50000 | | 2 | Rahul | 20000 | | 3 | Advik | 25000 | | 4 | Aarav | 65000 | | 5 | Ram | 20000 | | 6 | Mohan | 30000 | | 7 | Aryan | NULL | | 8 | Vinay | NULL | +----+--------+--------+ 8 rows in set (0.00 sec)
अब, नीचे दी गई क्वेरी RAND() फ़ंक्शन का उपयोग ORDER BY और LIMIT क्लॉज के साथ क्वेरी रिटर्न में यादृच्छिक रूप से अलग-अलग मानों या पंक्तियों के सेट में करेगी -
mysql> Select * from employee ORDER BY RAND() LIMIT 4; +----+-------+--------+ | ID | Name | Salary | +----+-------+--------+ | 5 | Ram | 20000 | | 4 | Aarav | 65000 | | 6 | Mohan | 30000 | | 8 | Vinay | NULL | +----+-------+--------+ 4 rows in set (0.00 sec) mysql> Select * from employee ORDER BY RAND() LIMIT 4; +----+--------+--------+ | ID | Name | Salary | +----+--------+--------+ | 6 | Mohan | 30000 | | 8 | Vinay | NULL | | 2 | Rahul | 20000 | | 1 | Gaurav | 50000 | +----+--------+--------+ 4 rows in set (0.03 sec) mysql> Select * from employee ORDER BY RAND() LIMIT 4; +----+-------+--------+ | ID | Name | Salary | +----+-------+--------+ | 3 | Advik | 25000 | | 8 | Vinay | NULL | | 7 | Aryan | NULL | | 5 | Ram | 20000 | +----+-------+--------+ 4 rows in set (0.00 sec)
उपरोक्त परिणाम सेट से यह देखा जा सकता है कि हर बार जब हम क्वेरी चलाते हैं, तो यह मानों या पंक्तियों का एक यादृच्छिक रूप से भिन्न सेट देता है।