Đây là một cách nhanh chóng để trả về các hàng ngẫu nhiên từ một bảng trong MariaDB.
Giả sử chúng ta có một bảng có tên là Pets
với dữ liệu sau:
SELECT
PetId,
PetName
FROM Pets;
Kết quả:
+-------+---------+ | PetId | PetName | +-------+---------+ | 1 | Fluffy | | 2 | Fetch | | 3 | Scratch | | 4 | Wag | | 5 | Tweet | | 6 | Fluffy | | 7 | Bark | | 8 | Meow | +-------+---------+
Chúng ta có thể sử dụng RAND()
chức năng kết hợp với ORDER BY
mệnh đề và LIMIT
từ khóa để trả về các hàng ngẫu nhiên từ bảng đó.
Ví dụ:
SELECT
PetId,
PetName
FROM Pets
ORDER BY RAND()
LIMIT 5;
Kết quả ví dụ:
+-------+---------+ | PetId | PetName | +-------+---------+ | 5 | Tweet | | 7 | Bark | | 1 | Fluffy | | 8 | Meow | | 3 | Scratch | +-------+---------+
Và nếu tôi chạy lại, tôi nhận được điều này:
+-------+---------+ | PetId | PetName | +-------+---------+ | 3 | Scratch | | 8 | Meow | | 4 | Wag | | 7 | Bark | | 6 | Fluffy | +-------+---------+
Và cứ thế…
Hãy nhớ rằng điều này khá khó và không nên được sử dụng trên các bảng lớn hơn.
Khi sử dụng kỹ thuật này, MariaDB đọc tất cả các hàng trong bảng, tạo giá trị ngẫu nhiên cho từng hàng, sắp xếp thứ tự cho chúng và cuối cùng áp dụng LIMIT
mệnh đề. Điều này sẽ dẫn đến truy vấn rất chậm trên các bảng lớn.
Xem Lấy mẫu Dữ liệu:Các Kỹ thuật Tìm Hàng Ngẫu nhiên Hiệu quả trên trang web MariaDB để biết các kỹ thuật phù hợp hơn với các bảng lớn hơn.