เมื่อเราใช้ฟังก์ชัน RAND() ร่วมกับคำสั่งย่อย ORDER BY และ LIMIT ในเคียวรี 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 clause ในเคียวรีส่งคืนชุดค่าหรือแถวที่แตกต่างกันแบบสุ่ม -
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)
สามารถสังเกตได้จากชุดผลลัพธ์ด้านบนว่าทุกครั้งที่เราเรียกใช้แบบสอบถาม จะส่งกลับชุดค่าหรือแถวที่แตกต่างกันแบบสุ่ม