从mysql随机1000行(不是重复行)的最佳方法是什么?
Now i use this
1. get all data(id row) in to array.
2. Random position of array 1000 position.
3. i will get 1000 row (not duplicate row)
但是,这是一个非常缓慢的过程,
你有简单的方法来获得随机的 1000 行(不是重复的行)吗?
从评论中,您也对理论答案感到满意。
如果您有包含所有行的数组,请使用array_unique()
删除重复的行,然后使用shuffle()
将它们混合在一起,最后您可以用array_slice()
切片。
编辑:
当您已经没有选择重复行时,您可以对其进行改进,然后您不必使用 array_unique()
.为此,DISTINCT
.如果你想在查询中完成所有操作,你可以做这样的事情:
SELECT DISTINCT column FROM table
ORDER BY RAND()
LIMIT 1000