从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行(不是重复行)吗?
答案 0 :(得分:0)
从评论中你也对理论答案感到满意。
如果您的数组包含所有行,请使用array_unique()
删除重复的行,然后使用shuffle()
将它们混合起来,最后您可以使用array_slice()
进行切片
修改强>
如果您没有选择重复的行,则可以改进它,然后您不必使用array_unique()
。对于此用途DISTINCT
。如果你想在查询中做所有事情,你可以这样做:
SELECT DISTINCT column FROM table
ORDER BY RAND()
LIMIT 1000