0

現在、php で EZSQL クラスを使用して MySQL データベースにクエリを実行しています。データベースからランダムなレコードを取得しようとしていますが、SQL クエリ自体ではなく、php を介して結果をランダム化できるかどうかを知りたいです。現在、クエリは次のようになっています。

$results = $db->get_results("SELECT * FROM table ORDER BY RAND()");

foreach($results AS $result)
{

//code here

}

代わりに、データベースから結果を取得して、php 経由でランダム化できますか? もしそうなら、どうすればこれを行うことができますか?

4

2 に答える 2

1

ORDER BY RAND() は推奨されません: mysql ORDER BY RAND() を使用しないのはなぜですか?

また: http://www.titov.net/2005/09/21/do-not-use-order-by-rand-or-how-to-get-random-rows-from-table/

shuffle($results)配列をランダム化するために呼び出すことができます

于 2013-02-09T23:25:33.760 に答える
0

@shuffle に同意しますが、本当に PHP を使用したい場合は、foreach を使用しません。代わりに、$results サイズを取り、0 から長さ 1 までの乱数を取得し、それを使用して配列から n 番目の要素を取得します

于 2013-02-09T23:25:21.507 に答える