1

我试图找出一种方法来选择表中的所有记录并以随机顺序显示它们。

RAND()在这个查询中听到了很多类似的信息

$sql = mysql_query("SELECT * FROM table ORDER BY RAND()");

但据我所知,这只是选择随机数量的记录,如 20 条。

如何选择所有记录但只是以随机顺序显示它们?

谢谢

4

4 回答 4

1

您最好选择所有条目并将随机显示留给 php.ini。整体ORDER BY RAND()需要大量的资源。该ORDER BY RAND()操作实际上重新查询表的每一行,分配一个随机数 ID,然后传递结果。

$sql = mysql_query("SELECT * FROM table ORDER BY RAND() LIMIT 1");

但据我所知,这只是选择随机数量的记录,如 20 条。

错误:这将选择所有记录,然后“随机”重新排列它们并为您提供第一行:LIMIT 1,只需将其省略即可。

$sql = mysql_query("SELECT * FROM table ORDER BY RAND()");
于 2012-09-16T16:32:34.520 回答
1

不过,我对您的问题不太清楚,您可以通过简单地进行以下查询以随机顺序获取所有记录:

SELECT * FROM table ORDER BY RAND()

上面的查询为表的每一行生成一个随机值,根据这些随机值对该表进行排序,并根据排序后的行返回。因此,您将拥有随机顺序的所有记录。

于 2012-09-16T16:32:38.943 回答
0

就是这样:

SELECT * FROM table ORDER BY RAND()

通过删除LIMIT 1您可以获得随机排序的所有记录...

于 2012-09-16T16:24:34.627 回答
0

把你的结果放在一个数组中,然后就是shuffle()它。

并且摆脱mysql_*功能,女孩不再喜欢它们了。

于 2012-09-16T16:25:02.810 回答