2016-04-11 6 views
0

MySQLデータベースの2倍のユーザー名をランダムに入力する必要があります。mysqli乱数の吐き出しに問題があります

私はclintonsanderstrumpを使用しています(申し訳ありませんでした)。

変数にランダムに2人のユーザーを入力したいだけです。私はあまりにも多くのスクリプトを読んで、ひどく混乱してしまった。

$result = mysqli_query($mdb, "SELECT user FROM `table`"); 
    $row = mysqli_fetch_row(array_rand($result,2)); 
    echo $row[0] . "\n"; 
    echo $row[1] . "\n"; 

私のテディベアが孤独なので、実際には袋を打つつもりです。明日の朝の回答を確認して返信します。ありがとう。

答えて

2

私はあなたがあなたのテディベアを残すべきだと思うだけで、もう一度負担とこれは自動的にあなたのDBから2つのランダムなエントリを与えるだろうし、あなたが文句を言わないarray_rand()を使用する必要がある代わりに、直接

$result = mysqli_query($mdb, "SELECT user FROM `table` ORDER BY RAND() LIMIT 0, 2"); 

をこのクエリを使用するもう

大きな基盤への影響に関するコメントの質問を参考にすると、研究に際しては大きな意味があります。私はあなたが多くの行を持つテーブルを持っている場合は、あなたがより速く このクエリは非常に作ることができ、より良いオプション

を提供し、このhttp://www.petefreitag.com/item/466.cfmにコメントを見つけました。単純なSELECT * FROMテーブルのORDER BY RAND()は、メモリが高価な形で をソートしなければなりません。クエリをSELECT * FROMテーブル に変更すると、RAND()> 0.9 ORDER BY RAND()の結果、 のオーバーヘッドが90%削減されました。これには多くのRAND() ステートメントのオーバーヘッドがありますが、DB2メインフレームでははるかに高速なテクニックです。

+0

エースに感謝しますが、これは大きなベースではあまりにも遅くないことを願っています。 – MikeIsMad

+0

残念なことに私の研究からはそうだろう。 @MikeIsMad – AceKYD

関連する問題