一、简单使用random()
SELECT * from usertb order by rand() LIMIT 100
效率相当相当的低,效率不行,切忌使用。
二、随机获取连续的多条数据
SELECT * FROM 表名 AS t1 JOIN
(SELECT ROUND(RAND() * ((SELECT MAX(id) FROM `表名`)-(SELECT MIN(id) FROM 表名))+(SELECT MIN(id) FROM 表名)) AS id) AS t2
WHERE t1.id >= t2.id ORDER BY t1.id LIMIT 100
注意,要求id为int或float这种可以做加减法的类型。
三、高效一点的随机获取多条数据
SELECT * FROM 表名 WHERE id >= ((SELECT MAX(id) FROM 表名)-(SELECT MIN(id) FROM 表名)) * RAND() + (SELECT MIN(id) FROM 表名) LIMIT 100
同样要求id为int或float这种可以做加减法的类型。