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