สุ่มลำดับแถวทั้งหมด
ORDER BY RAND() เรียงลำดับแถวแบบสุ่ม
ข้อมูล Employee (8 แถว)
+----+--------+--------+
| 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 |
+----+--------+--------+
คำสั่ง Shuffle
mysql> SELECT * FROM Employee ORDER BY RAND();
+----+--------+--------+
| ID | Name | Salary |
+----+--------+--------+
| 4 | Aarav | 65000 |
| 1 | Gaurav | 50000 |
| 3 | Advik | 25000 |
| 7 | Aryan | NULL |
| 6 | Mohan | 30000 |
| 8 | Vinay | NULL |
| 5 | Ram | 20000 |
| 2 | Rahul | 20000 |
+----+--------+--------+
การใช้งาน
- สุ่มลำดับแสดงผล (Quiz, Survey, Banner rotation)
- ร่วม LIMIT สำหรับ Random sampling
- ไม่ต้องมี WHERE clause
ประสิทธิภาพ
- ต้อง Generate RAND() ทุกแถว + Filesort
- ตารางใหญ่ ใช้
WHERE RAND() < 0.01 ORDER BY RAND() LIMIT 10แทน