【发布时间】:2012-10-02 15:24:32
【问题描述】:
我正在做一个测验,我将问题存储在表格中,每次提出一个问题时,我都希望显示另一个问题。我试过使用rand():
select * from quiz order by rand() LIMIT 1
但行正在重复。
还有什么我可以使用的方法来获取随机行但不会再次遇到相同的问题吗?
【问题讨论】:
-
他们不能重复多久?问题的数量是否有限?您是否希望您的用户在看到重复问题之前检查数据库中的所有问题?
-
从性能的角度来看,使用 ORDER BY RAND() 语句通常是个坏主意。无论如何,如果您想使用它,只需在查询中添加分组,例如 GROUP BY quiz_id 或其他一些唯一标识符,以消除重复。
-
是的,我希望用户一次性完成所有问题
-
然后只需选择所有数据并使用 php 随机播放结果。