ホームページ  >  記事  >  バックエンド開発  >  php mysqlで複数のデータをランダムに取得する方法

php mysqlで複数のデータをランダムに取得する方法

藏色散人
藏色散人オリジナル
2022-01-06 09:09:573089ブラウズ

php 複数のデータをランダムに取得する Mysql メソッド: 1. "SELECT * FROM tablename ORDER BY RAND() LIMIT" を通じてデータを取得します; 2. "ORDER BY t1.id ASC LIMIT" を通じて指定されたアイテムを取得しますデータ数など

php mysqlで複数のデータをランダムに取得する方法

#この記事の動作環境: Windows 7 システム、PHP バージョン 7.1、Dell G3 コンピューター。

php mysql はどのようにして複数のデータをランダムに取得しますか?

mysql で複数のデータをランダムに取得する方法

次のように書く方法があります。 SQL ステートメント:

1: SELECT * FROM tablename ORDER BY RAND() LIMIT 取得するデータ項目の数;

2: SELECT *FROM `table ` WHERE id >= (SELECT FLOOR( MAX(id) * RAND()) FROM `table` ) ORDER BY id LIMIT 取得したいデータの数;

3: SELECT * FROM `table` AS t1 JOIN (SELECT ROUND(RAND() * (SELECT MAX(id) FROM `table`)) AS id) AS t2 WHERE t1.id >= t2.id

ORDER BY t1.id ASC LIMIT 取得するデータ項目の数;

4: SELECT * FROM `table`WHERE id >= (SELECT Floor(RAND( ) * (SELECT MAX(id) FROM ` table`))) ORDER BY id LIMIT 取得したいデータ項目の数;

5: SELECT * FROM `table` WHERE id >= (SELECT フロア( RAND() * ((SELECT MAX(id) FROM `table`)-(SELECT MIN(id) FROM `table`)) (SELECT MIN(id) FROM `table`))) ORDER BY id LIMIT 取得するデータ項目の数;

6: SELECT * FROM `table` AS t1 JOIN (SELECT ROUND(RAND() * ((SELECT MAX( id) FROM `table`)-(SELECT MIN(id) FROM `table`)) (SELECT MIN(id) FROM `table`)) AS id) AS t2 WHERE t1.id >= t2.id ORDER BY t1 .id LIMIT 取得したいデータの数;

フィードバック:

380,000 個のデータを正確に測定し、ランダムに選択された 10 個の値、実行時間は 1 ~ 2 秒です。 2. 20秒以上実行しても反応がなく、3回試しました。 3 取得した 10 個のデータは連続した ID であり、実行には 0.001 秒かかります。 4 ID が 1 ~ 4000 の項目を 10 個ランダムに選択し、0.003 秒間実行して 10 回以上試行します。 5 ID が 1 ~ 4000 の項目を 10 個ランダムに選択し、0.003 秒間実行して 10 回以上試行します。 6 取得した10個のデータは連続したIDであり、実行には0.001秒かかります。

推奨学習: 「PHP ビデオ チュートリアル

以上がphp mysqlで複数のデータをランダムに取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。