Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

cách chọn các bản ghi duy nhất ngẫu nhiên trên mỗi lần thực thi Truy vấn SQL

Vì bạn có thể chuyển một tham số hạt giống cho RAND() , bạn có thể "phân trang" các kết quả ngẫu nhiên bằng cách tạo một hạt giống trước trang đầu tiên.

Mã mẫu:Đối với trang đầu tiên (thay đổi theo ngôn ngữ):

int seed = Math.abs(new Random().nextInt());

Truy vấn SQL:

SELECT url FROM masterurls ORDER BY RAND({seed}) LIMIT 200;

Lưu trữ hạt giống ở đâu đó (đối với các ứng dụng dựa trên web, bạn có thể sử dụng tham số url hoặc phiên). Đối với các trang tiếp theo:

SELECT url FROM masterurls ORDER BY RAND({seed}) LIMIT 200 * {pageNumber}, 200;

Lưu ý:Sắp xếp theo RAND() là một hoạt động nặng, bạn có thể tốt hơn nên lưu trữ một cột được lập chỉ mục bằng Mã băm của url, sau đó sử dụng các chức năng dựa trên mô-đun hoặc các chức năng ngẫu nhiên khác.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Node.js kết nối với vùng chứa MySQL Docker ECONNREFUSED

  2. Tính tổng của một số cột MySQL được lưu trữ trong một cột khác?

  3. SỬ DỤNG từ khóa so với mệnh đề BẬT - MYSQL

  4. Liên tục phát trực tuyến âm thanh ngẫu nhiên từ cơ sở dữ liệu

  5. Chọn hàng cụ thể từ bảng mysql