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

ORDER BY RAND () dường như ít hơn ngẫu nhiên

RAND() chỉ được thực thi một lần cho mỗi truy vấn. Bạn có thể xác minh điều này bằng cách xem tập hợp kết quả.

Nếu bạn đang cố gắng nhận một đơn đặt hàng ngẫu nhiên, bạn nên sử dụng NEWID() hoặc CHECKSUM(NEWID()) .

WITH T AS ( -- example using RAND()
  SELECT 'Me' Name UNION SELECT 'You' UNION SELECT 'Another'
)
SELECT Name, RAND()
FROM T;

WITH T AS ( -- example using just NEWID()
  SELECT 'Me' Name UNION SELECT 'You' UNION SELECT 'Another'
)
SELECT Name, NEWID()
FROM T;

WITH T AS ( -- example getting the CHECKSUM() of NEWID()
  SELECT 'Me' Name UNION SELECT 'You' UNION SELECT 'Another'
)
SELECT Name, CHECKSUM(NEWID())
FROM T;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lập trình xác định các liên kết ngoại tệ django

  2. lỗi tăng tự động mysql

  3. Trăn mysqldb thoát? hoặc% s?

  4. CHỌN cột khử chuẩn hóa thành các bản ghi riêng biệt?

  5. Lỗi khi định cấu hình hibernate 5.0.1 và MySQL