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

Làm thế nào để có được một hàng ngẫu nhiên cho ngày hiện tại?

Sử dụng một hạt giống cho trình tạo số ngẫu nhiên dựa trên ngày hiện tại:

ORDER BY RAND(20120714) LIMIT 1

Tôi cũng tò mò về ý của bạn khi nói "khác" ở đây:

Nếu bạn muốn chọn một khác trích dẫn ngẫu nhiên mỗi ngày thì bạn không nên sử dụng ORDER BY RAND(seed) . Điều này có thể trả lại cùng một báo giá ba ngày liên tiếp.

Nếu bạn muốn tránh điều này xảy ra, thay vào đó, bạn có thể lưu trữ báo giá được chọn cho mỗi ngày và chọn một báo giá ngẫu nhiên từ những báo giá chưa được sử dụng trong n ngày qua. Tất nhiên, nếu bạn đang lưu trữ khi một câu trích dẫn được sử dụng lần cuối thì cũng có một giải pháp tự nhiên cho vấn đề ban đầu của bạn:

  • Tìm một câu trích dẫn được sử dụng lần cuối vào ngày hôm nay.
  • Nếu có thì đó là câu trích dẫn trong ngày.
  • Nếu không, hãy chọn một câu trích dẫn mới trong ngày từ những hàng chưa được sử dụng trong n ngày qua và cập nhật hàng đó để chứng tỏ rằng đó là câu trích dẫn trong ngày cho ngày hôm nay.

Được rồi, còn cách tiếp cận hơi khác thì sao:

ORDER BY RAND(201207) LIMIT 14, 1
--            yyyymm        dd

Bây giờ bạn không cần thêm một cột và bạn sẽ không bị lặp lại, có lẽ ngoại trừ khi tháng thay đổi. Giải pháp này giả định rằng bạn có ít nhất 32 dấu ngoặc kép để lựa chọ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. Laravel 5.5 Hợp nhất di chuyển với cơ sở dữ liệu sản xuất

  2. Có thể có một tham số mặc định cho một thủ tục được lưu trữ mysql không?

  3. chúng ta nên sử dụng truy vấn nào để chia 1colmnn thành nhiều cột

  4. MySQL:IF trong thủ tục được lưu trữ

  5. Khai báo lỗi cú pháp trong MYSQL Workbench