繰り返し可能な(再現性のある)ランダム値を使ったページング
データ取得するときはランダムにとりたいけど、ランダムにとったデータでページング処理やりたい場合。
今まで
- ランダムにデータ取得
- webアプリケーションの場合、sessionにデータ保持。
- ページングのたびにsessionに保持しているデータを1〜10、11〜20…みたいな感じでデータを切り出す。
今日知った事
SELECT * FROM table ORDER BY RAND(n) LIMIT 10 OFFSET 1; ※nは任意の定数
上記のようなsqlだとRAND関数が繰り返し可能な乱数を生成する。