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;
posted @ 2024-12-27 18:34  熊先生不开玩笑  阅读(11)  评论(0)    收藏  举报