最终方法:这个方法随机10条数据是没有问题,但是如果太多,比如10000条会花费的时间比较长,但是效果是没有任何问题的,真正的随机。
SELECT * FROM actor_show WHERE 1 ORDER BY rand() limit 10
方法1:为什么不管用呀,提示没有newid()函数,我的版本是5.7.34,有没有大佬可以解释下呀?
SELECT TOP 10 * FROM ywle order by newid()
方法2:可以运行,以及很多博客都提到了这种方法,但是我实验过后虽然每次结果都不相同,但是结果是不理想的,没有真正的做到随机。到底是为什么呢?我一共有400条数据,但是采用以下的方法,每次数据id都在10-100之间。
SELECT * FROM actor_show WHERE actor_show.id > ((( SELECT MAX( actor_show.id ) FROM actor_show )-( SELECT MIN( actor_show.id ) FROM actor_show )) * RAND() + ( SELECT MIN( actor_show.id ) FROM actor_show )) limit 10
希望可以和大家一起交流学习下,谢谢!
01-23
1064
12-15