SELECT
	*
FROM
	tp_news
WHERE
	id >= (
		(SELECT MAX(id) FROM tp_news) - (SELECT MIN(id) FROM tp_news)
	) * RAND() + (SELECT MIN(id) FROM tp_news)
LIMIT 11

或者

SELECT sh1.* FROM mp_ae_group AS sh1 
JOIN 
(SELECT 
	ROUND(
		RAND() * ((SELECT MAX(id) FROM mp_ae_group)-(SELECT MIN(id) FROM mp_ae_group)) 
		+ (SELECT MIN(id) FROM mp_ae_group)
	) AS id
) AS sh2 
WHERE sh1.id>=sh2.id limit 3

id : 主键字段名;

mp_ae_group : 表名;

limit 3 : 随机获取3条数据;

参考:

    https://www.cnblogs.com/fanelephant/p/3772337.html


注 : 获取的数据有几率小于指定的次数, 重复调用即可,重复调用需判断总记录数是否小于指定次数;

更多推荐