ホームページ >バックエンド開発 >PHPチュートリアル >php+mysqlでランダムなデータベース再配置を実現する例、phpmysql再配置例_PHPチュートリアル
この記事の例では、php+mysql データベースをランダムに再配置する方法を実装しています。テーブル内のすべてのデータを一度ランダムに読み取って、別のテーブルにランダムに保存することで、ランダム記録の機能を実現します。
主な実装コードは次のとおりです:
この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。
1) SQL ステートメントを使用して 5 つのレコードをランダムにフェッチします。
mysql は次のとおりです: "select * from youtable order by rand() limit 5";
2) また、5 ~ 10 のレコードをランダムにフェッチします:
$num=rand ( 5,10);
$sql="select * from youtable order by rand() limit $num";
ps: なぜこれは PHP 分類の問題ではないのでしょうか?
rand() 制限 5 によって select * from students order を直接使用するのは良い習慣ではありません。これには、データベースのサイズを考慮する必要があります。たとえば、データ量が 10W を超える場合、クエリ効率は非常に高くなります。低くなり、リソースがかなり消費されます。 php と mysql を組み合わせて実装することを検討できます。たとえば、まず mysql の count() を使用して生徒の合計数 $sum_num を計算し、それを php の変数に割り当て、次にこの合計数を php で生成します (これには、5 つのデータが 5 つの連続した乱数であるか、5 つのスクランブルされた乱数であるかが関係します)。ここで連続データを生成する場合は、 $sum_num-5 未満の乱数のみを生成する必要があります。この乱数に基づいて、5 つの項目を制限できます。ここでスクランブル乱数を生成する必要がある場合は、$sum_num より小さい 5 つの異なる乱数を生成し、最終的にこれらの乱数に基づいてデータベースでクエリを実行する必要があります。 1 番目の方法では、制限乱数 5 が使用されます。2 番目の場合は、(乱数 1、乱数 2、乱数 3、乱数 5) が使用されます。データ量が多いので効率が良いです。リソース消費の観点からは、rand() 制限 5 による select * from students order よりもはるかに優れています。もちろん、データ量が大きくなければ、これを使用できます。知識を広めるためだけに!楽しい研究をお祈りします! (当面は、PHP を使用して乱数を生成できると仮定します。ここで PHP によって生成される乱数は 0 より大きい整数である必要があります。そうでない場合は、最初に Baidu または Google を使用できます。 、最後にメッセージを残していただけます)!
IDが不足している可能性があるため、一部の方法は適用されません!