イベントのデータベースがあります。各イベントにはランクが付けられています (1 ~ 5)。日付範囲ごとにイベントのデータベースを照会したい、ランク 1 のイベントのランダムなセットを選択した後、ランク 2 のイベントのランダムなセットを選択したいなど。
このクエリにより、ランク 1 のイベントがランダムに選択されます。
SELECT * FROM
(
SELECT * FROM `events`
WHERE `date` >1326578956
AND `date`<1326870399
AND `rank`=1
ORDER BY RAND()
)
e LIMIT 0,10
ただし、ランク1、ランク2等のイベントが無い場合もあるかもしれません。
これは MYSQL クエリのみで可能ですか。PHP を使用してクエリを反復処理し、配列に結果を入力することもできますが、可能であればすべて MYSQL で行う方がはるかにエレガントだと思います。
ありがとう、
アラン。