我想在查询后有随机的行,但是order by rand()
在一个有 120k+ 行的表上使用只是耗尽。我找到了一个小解决方案,它只输出行数,但它运行起来就像从随机索引开始,然后返回 #number of rows 之后。它非常快,但这只是在随机索引之后返回一些行。代码如下:
SELECT *
FROM lieky AS r1 JOIN
(SELECT (RAND() *
(SELECT MAX(col_0)
FROM lieky)) AS id)
AS r2
WHERE r1.col_0 >= r2.id
ORDER BY r1.col_0 ASC
LIMIT 100
我在这里找到了它:http: //jan.kneschke.de/projects/mysql/order-by-rand/
有什么可以帮助我的吗?
我正在尝试将随机数据放入分页中,因此当用户查询数据库时,他将始终以随机顺序获取行。感谢帮助。