多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## 随机获取一条数据 ``` select * from pin_ware where ware_id >= ( select floor((select min(ware_id) from pin_ware) + rand() * ((select max(ware_id) from pin_ware) - (select min(ware_id) from pin_ware))) ) limit 1; ``` ((select max(ware_id) from pin_ware) - (select min(ware_id) from pin_ware) 表示数据区间a (select min(ware_id) from pin_ware) 表示基数b, 关键在于区间a 和 随机数rand() 的相乘 函数 rand() 的范围是0~1,等于0时,最后的结果是基数b,等于1时,得到的结果是 max(ware_id) ## 随机获取多条数据 ``` select * from pin_ware inner join ( select floor((select min(ware_id) from pin_ware) + rand() * ((select max(ware_id) from pin_ware) - (select min(ware_id) from pin_ware))) as id limit 50 ) t on pin_ware.ware_id = t.id limit 5; ``` 先获取50个随机的id,在从中取出需要的个数,比如5个。 这里需要用 inner join 而不能用left join,left join 会返回所有数据。