MySQL テーブルからランダムなデータを抽出する方法
この問題については以前グループで議論したことがありますが、mysql の構文は非常に興味深いものです
彼らは元々、ランダム性を実現するために PHP を使用したいと考えていました。複数のレコードを抽出するには 2 回以上かかります。
マニュアルを調べたところ、タスクを完了できる次のステートメントが見つかりました
SELECT * FROM table_name ORDER BY rand() LIMIT 5;マニュアル:
RAND()
RAND( N)
0 ~ 1.0 の範囲のランダムな浮動小数点値を返します。整数パラメータ N が指定されている場合、それがシード値として使用されます。
mysql> select RAND();
0.5925
mysql> select RAND(20); - - -> 0.2079
sql> select RAND( );
- 0.7888
ORDER BY は列を複数回再計算するため、ORDER BY 句で RAND() 値を持つ列を使用することはできません。ただし、MySQL3.23 では、 SELECT * FROM table_name ORDER BY RAND() を実行できます。これは、 SELECT * FROM table1,table2 WHERE a=b AND c
しかし、私はそれを試しました。8,000レコードのテーブルの場合、1回の実行に0.08秒かかりました。後でGoogleに問い合わせたところ、次のコードが得られました
SELECT *
FROM table_name AS r1 JOIN
( round(rand() *
r2.id
-ord by R1.id asc
limit5;
http://www.bkjia.com/PHPjc/318428.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/318428.html
技術記事
MySQL はテーブルからランダムなデータをどのように取得するのでしょうか? この問題は以前にグループで議論されましたが、mysql の構文は非常に興味深いもので、当初はランダム性を実現するために PHP を使用する予定だったようです。必要です...