現在の日付に基づいて乱数ジェネレーターのシードを使用します:
ORDER BY RAND(20120714) LIMIT 1
ここで「その他」とはどういう意味かについても興味があります:
異なるを選択する場合 毎日ランダムに引用する場合は、単純なORDER BY RAND(seed)
を使用しないでください。 。これにより、3日連続で同じ見積もりが返される可能性があります。
これを回避したい場合は、代わりに、毎日選択されている見積もりを保存し、過去n日間使用されていない見積もりからランダムな見積もりを選択できます。もちろん、見積もりが最後に使用されたときに保存している場合は、元の問題に対する自然な解決策もあります。
- 今日最後に使用された見積もりを探してください。
- ある場合は、それがその日の見積もりです。
- そうでない場合は、過去n日間使用されていない行からその日の新しい見積もりを選択し、その行を更新して、それが今日のその日の見積もりであることを示します。
OK、少し違うアプローチはどうですか:
ORDER BY RAND(201207) LIMIT 14, 1
-- yyyymm dd
これで、余分な列は必要なくなり、月が変わる場合を除いて、繰り返しが発生することはありません。このソリューションは、少なくとも32の見積もりから選択できることを前提としています。