是使用纯SQL选择随机数据更好,还是选择整个表并对其进行混洗更好?如果纯SQL更好,有没有人能给我举个最有效的例子?
另外,将选择的数据保存到会话变量中是不是一个好主意?我想做一个每页一个问题的测验,并有能力返回到回答的问题,并改变其答案。会话将保存用户选择的问题和答案的双重数组。或者也许有一种更有效的方法来做这件事?
发布于 2016-03-07 03:38:51
当然,使用纯SQL选择随机数据会更好。你可以在这里阅读how to select random rows in mysql。
您可以将此数据保存在服务器端(会话)或客户端(COOKIE)。但在这种情况下,它不是本金。最重要的是,应用程序应该能够在最后一个问题之后访问用户问题和答案
发布于 2016-03-07 03:39:45
MySQL中的"Order by rand()“函数非常慢,通常不应该使用。选择后随机排列,或者最好是随机化一个行引用,然后进行查询选择。如果可以使用后一种方法,它是最有效的方法。
发布于 2016-03-07 03:44:53
SELECT bar, foo, rand() FROM tabname ORDER BY 3 LIMIT 0,1;当然,如果你想输出一些单一的数据(比如一些游戏的问题),你可以使用AS,so,own,限制是很重要的。
附言-有些人会说rand()太慢了,但这不是真的,它只是取决于你如何以及你将在哪里使用它。在上面这个简单的方法中,它是相当快的,如果你做了一个低于15万个问题的测验:-),它就可以了。
希望我能帮到你。干杯。
https://stackoverflow.com/questions/35831481
复制相似问题