クエリの後に行をランダム化したいのですが、order by rand()
120,000 行以上あるテーブルで使用するのは大変です。行数を出力するだけの小さなソリューションを見つけましたが、ランダムなインデックスから開始し、その後 #number of rows を返すように実行されます。これはかなり高速ですが、これはランダム インデックスの後にいくつかの行を返すだけです。コードは次のようになります。
SELECT *
FROM lieky AS r1 JOIN
(SELECT (RAND() *
(SELECT MAX(col_0)
FROM lieky)) AS id)
AS r2
WHERE r1.col_0 >= r2.id
ORDER BY r1.col_0 ASC
LIMIT 100
ここで見つけました:http://jan.kneschke.de/projects/mysql/order-by-rand/
私を助けるものはありますか?
ランダム化されたデータをページネーションに取得しようとしているため、ユーザーがデータベースにクエリを実行すると、常にランダムな順序で行が取得されます。手伝ってくれてありがとう。