私はこれを行うためのより良い方法を探しています:
SELECT * FROM $tbl_name WHERE id >= (SELECT FLOOR( MAX(id) * RAND()) FROM $tbl_name ) ORDER BY id LIMIT 1;
それは遅く、あまりランダムではありません。10回ほどのクエリごとに同じ結果が得られます。
これにより、IDに関係なく、テーブルからランダムな行が選択されます。
これまでのところ私はこれを持っています:
// Get amount of rows in database
$result = mysql_query("SELECT * FROM $tbl_name");
$num_rows = mysql_num_rows($result);
// Generate random number
$random_row = rand(1, $num_rows);
しかし、特定の行を取得する方法がわかりません。
そういうことじゃなかったの
SELECT * FROM $tbl_name WHERE id = $random_row
私のデータベースではID列にギャップがあるため、失敗することがあります。
IDに応答せずにMySQLデータベースからランダムな結果を取得でき、超高速のスクリプトを入手した人はいますか?(データベースには約20000行が含まれています)