mysql8 获取随机数据(id非连续自增)
在mysql8 中因为id非连续自增,所以用网上大家说的获取随机数据的方式,不可行。下面贴出一条可以在id非连续自增的表table中获取数据的sql。但是未在大量数据的表中测试效率。谨慎使用。
SELECT
row_num,
id
from
(
SELECT
ROW_NUMBER() OVER (
ORDER BY id) AS row_num,
id
FROM
table) as t1
join (
SELECT
ROUND( RAND() * COUNT(1) ) as ra
from
table) as t2
WHERE
t1.row_num >= t2.ra
LIMIT 1;

浙公网安备 33010602011771号