MySQL之获取随机数据和随机打乱顺序的数据

/ 数据库 / 没有评论 / 367浏览

首先说下order by 后面如果跟上数字,如下面,则标识按照查询的第几个字段排序;

SELECT C1,C2,C3 FROM T ORDER BY 1


后面加上RAND(),则是随机排序

SELECT C1,C2,C3 FROM T ORDER BY RAND()


获取随机顺序,并且是随机数量的数据

SELECT C1,C2,C3 
FROM T 
WHERE
RAND ( ) < ( SELECT ( ( 1 / COUNT( * ) ) * 10 ) FROM T) 
ORDER BY RAND()


可以使用Jdk提供静态方法进行打乱顺序;

Collections.shuffle(List); 将list数据进行洗牌打乱,从后往前每次随机更换

参考文章:

Selecting Random Rows Using MySQL + Benchmark Results - WarpConduit Computing