• 締切済み

SQLのSELECT文でのランダム抽出について

SQLのSELECT文でのランダム抽出について データベースSQLiteでSELECT文の結果をランダムに抽出するには ORDER BY RANDOM()を使うようですが、前回ランダムに抽出された順序と同じ結果を得るにはどのようにすればよいでしょうか。 MySQLの場合は、ORDER BY RAND(n)でnの値を同じにすれば、同じ順序で抽出できるようですが、SQLiteでは無理なようです。 今考えているのはRANDOM()で得られた列の一つ(たとえばID)を一時的に別のテーブルを作成して保存後、その一時テーブルを利用するというものですが、もっと良い方法があるのではと思います。 何か別の方法がありましたら、教えていただきたくよろしくお願いいたします。

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

ソート用のフィールドを用意しておいて、UPDATEで定期的に値をRANDしてやればどうでしょう? もちろん特定の参照キーをもとに別テーブルで管理してもいいとは思いますが

tossit
質問者

補足

提案ありがとうございます。 確かに、専用フィールドの手もありますね。 自分でもまだあれこれ試しています。