首先,尝试以下SQL语句:sql SELECT * FROM `news`WHERE id >= (SELECT floor(RAND() * (SELECT MAX(id) FROM `news`))LIMIT 10;这种方法通过生成一个随机数,乘以表中最大id与最小id的差值,然后取整,作为查询的起点,从而达到随机选取数据的效果。另一种方式是利用子查询结合ROUND函数:sql SE...
mysql查询随机几条数
在MySQL中,如果你需要随机获取几条数据,可以使用Max RAND函数实现。以下是两种有效的方法,对于几十万条数据,查询速度表现良好。
首先,尝试以下SQL语句:
sql
SELECT * FROM `news`
WHERE id >= (SELECT floor(RAND() * (SELECT MAX(id) FROM `news`))
LIMIT 10;
这种方法通过生成一个随机数,乘以表中最大id与最小id的差值,然后取整,作为查询的起点,从而达到随机选取数据的效果。
另一种方式是利用子查询结合ROUND函数:
sql
SELECT *
FROM `news` AS t1
JOIN (SELECT ROUND(RAND() * ((SELECT MAX(id) FROM `news`) - (SELECT MIN(id) FROM `news`)) + (SELECT MIN(id) FROM `news`)) AS id) AS t2
ON t1.id >= t2.id
LIMIT 10;
这个方法也通过随机数生成并结合范围,确保了结果的随机性。两种方法都能满足随机获取数据的需求,对于大规模数据也表现稳定。2024-09-28