重複の可能性:
SQLでランダムな行を要求する方法は?
テーブルが大きいため、MySQL関数を使用できず、この方法RAND()
の使用を避けようとしています。RAND()
$a = mysql_fetch_array(mysql_query("SELECT MIN(id), MAX(id) FROM table WHERE category_id='".$var."'"));
$id = rand($a[0],$a[1]);
$id2 = rand($a[0],$a[1]);
これは機能しません。理由は次のとおりです。$a
私はそれぞれのIDで最大と最小を持っていますcategory_id
-それは問題ありません。
$id
この問題は、最小ID値と最大ID値が使用されているため、行にとをもたらし$id2
ますが、PHP関数rand()
は最小値と最大値の間でランダムな値を取ります。また、選択されたレコードがに属さない可能性が高くなりcategory_id
ます。
それで、私はあなたに方法について尋ねたいと思います、どうすればこの例を修正できますか?
ありがとうございました