Sử dụng ORDER BY RAND() để trả về kết quả ngẫu nhiên mỗi lần chạy truy vấn.
Tạo bảng và dữ liệu
mysql> CREATE TABLE DemoTable792(Name VARCHAR(100), Subject VARCHAR(100));
Query OK, 0 rows affected (0.66 sec)
mysql> INSERT INTO DemoTable792 VALUES
('Chris','MySQL'), ('David','MySQL'), ('Robert','MongoDB'), ('Carol','MongoDB');
Query OK, 4 rows affected
Truy vấn xáo trộn ngẫu nhiên
mysql> SELECT * FROM DemoTable792 ORDER BY RAND();
Kết quả (ví dụ một lần chạy):
+--------+---------+ | Name | Subject | +--------+---------+ | Chris | MySQL | | Robert | MongoDB | | David | MySQL | | Carol | MongoDB | +--------+---------+
⚠️ Cảnh báo hiệu năng: ORDER BY RAND() rất chậm trên bảng lớn vì phải sinh số ngẫu nhiên cho mọi hàng rồi sắp xếp. Với bảng >10k hàng, hãy cân nhắc:
- Lấy
MAX(id), sinh random trong ứng dụng, rồiWHERE id >= random_id LIMIT 1 - Dùng
TABLESAMPLE(MySQL 8.0.13+) cho sampling thống kê