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.