mysql随机抽取一定数量的记录实例讲解
16lz
2021-12-21
以前碰见这种使用场景都是直接order by rand()来处理的,但是效率实在是不敢恭维,所以最近又碰见这种场景,在网上找寻下比较好的解决办法.
1.order by rand()
写法:
SELECT idFROM `table`ORDER BY rand()
2.max(id) * rand() 使用join
写法:
SELECT *FROM `table` AS t1JOIN ( SELECT ROUND( RAND() * ( (SELECT MAX(id) FROM `table`) - (SELECT MIN(id) FROM `table`) ) + (SELECT MIN(id) FROM `table`) ) AS id) AS t2WHERE t1.id >= t2.idORDER BY t1.idLIMIT 1;
这里有个问题是如果取多条 那么一定是连续的,所以如果是不想取连续数据,得循环,不过此语句效率极高,所以循环查询是可以做的。
更多相关文章
- 《Android和PHP最佳实践》官方站
- android用户界面之按钮(Button)教程实例汇
- TabHost与RadioGroup结合完成的菜单【带效果图】5个Activity
- Android(安卓)UI开发第十七篇——Android(安卓)Fragment实例(Lis
- Android——Activity四种启动模式
- Android布局(序章)
- Android发送短信方法实例详解
- Android(安卓)读取资源文件实例详解
- android 蓝牙通讯