通常情况下我们在开发项目中一般会用到 随机推荐 或者 购买类 需求,一般情况下很多程序猿都是 正序 或者 倒叙 获取 然后随机返回给前端,这种方式有 很多缺陷

解决方案

 下面我们分享一种直接从 mysql 数据库中随机获取数据的一种方式。

编写最大id查询sql

SELECT MAX(id) FROM `user`

编写join

INNER JOIN ( SELECT ROUND( RAND( ) * ( ( SELECT MAX( id ) FROM `bl_user` ) ) ) AS id ) AS u2 ON u.id >=`u2`.`id` 

编写要获取的随机条数

LIMIT 50

完整实例

SELECT
    * 
FROM
    `user` `u`
    INNER JOIN ( SELECT ROUND( RAND( ) * ( ( SELECT MAX( id ) FROM `user` ) ) ) AS id ) AS u2 ON u.id >= `u2`.`id` 
    LIMIT 50

 以上sql主要实现了完全从随机位置取 指定条数 的记录来实现 随机 获取 mysql 表数据,有兴趣的同学可以测试一下.