我正在寻找一种更好的方法来做到这一点:
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 列中有间隙,所以它有时会失败。
有没有人有脚本可以从 MySQL 数据库中获取随机结果而无需回复 ID 并且速度非常快?(数据库包含大约 20000 行)