我试图找出一种方法来选择表中的所有记录并以随机顺序显示它们。
我RAND()
在这个查询中听到了很多类似的信息
$sql = mysql_query("SELECT * FROM table ORDER BY RAND()");
但据我所知,这只是选择随机数量的记录,如 20 条。
如何选择所有记录但只是以随机顺序显示它们?
谢谢
您最好选择所有条目并将随机显示留给 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()");
不过,我对您的问题不太清楚,您可以通过简单地进行以下查询以随机顺序获取所有记录:
SELECT * FROM table ORDER BY RAND()
上面的查询为表的每一行生成一个随机值,根据这些随机值对该表进行排序,并根据排序后的行返回。因此,您将拥有随机顺序的所有记录。
就是这样:
SELECT * FROM table ORDER BY RAND()
通过删除LIMIT 1
您可以获得随机排序的所有记录...
把你的结果放在一个数组中,然后就是shuffle()
它。
并且摆脱mysql_*
功能,女孩不再喜欢它们了。