MySQL中RAND()函数 随机获取数据

mysql中使用order by rand(),可随机组行或值。

使用分页还好,不影响速度,但是我在项目中使用到了MyBatis-Plus,直接查询全部数据生成一个普通的List,IPage自动替我们分页,但是这样效率非常低,SQL如下:

SELECT * FROM product ORDER BY RAND() 

[能日赚30软件试玩平台,亲测有效]

尝试在SQL后面加分页,但是IPage再分页时会报错,于是采用了下面这种写法:

SELECT p.* FROM product p
  INNER JOIN (
    SELECT
      round(
    rand() * (SELECT max(id) FROM product)
  ) AS ids
) t ON p.id > t.ids

使用JOIN,查询 rand() * max(id) 来随机获取数据

原文地址:https://www.cnblogs.com/shiqiboy3974/p/14027629.html