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
注 : 获取的数据有几率小于指定的次数, 重复调用即可,重复调用需判断总记录数是否小于指定次数;