从mysql中随机1000行(不是重复行)的最佳方法是什么?

时间:2015-03-10 16:57:43

标签: php mysql random

从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行(不是重复行)吗?

1 个答案:

答案 0 :(得分:0)

从评论中你也对理论答案感到满意。

如果您的数组包含所有行,请使用array_unique()删除重复的行,然后使用shuffle()将它们混合起来,最后您可以使用array_slice()进行切片

修改

如果您没有选择重复的行,则可以改进它,然后您不必使用array_unique()。对于此用途DISTINCT。如果你想在查询中做所有事情,你可以这样做:

SELECT DISTINCT column FROM table
ORDER BY RAND()
LIMIT 1000