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) 来随机获取数据


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM