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

MySQL chọn nhanh 10 hàng ngẫu nhiên từ 600 nghìn hàng

Một bài đăng tuyệt vời xử lý một số trường hợp, từ đơn giản, đến khoảng trống, đến không đồng nhất với khoảng trống.

http://jan.kneschke.de/projects/mysql/order- by-rand /

Đối với hầu hết các trường hợp chung, đây là cách bạn thực hiện:

SELECT name
  FROM random AS r1 JOIN
       (SELECT CEIL(RAND() *
                     (SELECT MAX(id)
                        FROM random)) AS id)
        AS r2
 WHERE r1.id >= r2.id
 ORDER BY r1.id ASC
 LIMIT 1

Điều này giả sử rằng việc phân phối id là ngang nhau và có thể có khoảng trống trong danh sách id. Xem bài viết để biết thêm các ví dụ nâng cao



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tổng hợp hàng MySQL thành số cột động

  2. Bảng tổng hợp trong MySQL

  3. Ví dụ về WEEK () - MySQL

  4. Hàm MySQL - FOUND_ROWS () cho Tổng số hàng bị ảnh hưởng

  5. Đã vượt quá thời gian chờ nhận được Khóa; thử bắt đầu lại giao dịch mặc dù tôi không sử dụng giao dịch