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

ORDER BY RAND () thay thế

Nếu bạn có cột ID, tốt hơn nên thực hiện:

-- create a variable to hold the random number
SET @rownum := SELECT count(*) FROM table;
SET @row := (SELECT CEIL((rand() * @rownum));

-- use the random number to select on the id column
SELECT * from tablle WHERE id = @row;

Logic của việc chọn số id ngẫu nhiên có thể được chuyển sang cấp ứng dụng.

SELECT * FROM table ORDER BY RAND LIMIT 40

rất kém hiệu quả vì MySQL sẽ xử lý TẤT CẢ các bản ghi trong bảng thực hiện quét toàn bộ bảng trên tất cả các hàng, sắp xếp chúng một cách ngẫu nhiên.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL Sắp xếp theo 2 cột

  2. Ví dụ về câu lệnh JDBC - Chèn hàng loạt, cập nhật, xóa

  3. Nhiều khóa ngoại trong cùng một bảng

  4. Làm cách nào để kết nối với Cơ sở dữ liệu MySQL từ Ứng dụng Android?

  5. Làm thế nào để chuyển đổi ngày của con người sang dấu thời gian unix trong Mysql?