Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Xáo trộn thứ tự hàng (shuffle) bằng ORDER BY RAND()

Dùng ORDER BY RAND() để trả về tập kết quả theo thứ tự ngẫu nhiên (shuffle).

Dữ liệu gốc (có thứ tự ID 1→8)

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   |
+----+--------+--------+

Sau ORDER BY RAND()

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  |
+----+--------+--------+

Lưu ý hiệu năng: ORDER BY RAND() chậm trên bảng lớn (full table scan + filesort). Với bảng lớn, cân nhắc cách khác (ví dụ: WHERE RAND() < 0.01).