MySQL随机取值(单条OR多条)语句新想法
之前PHP随机取值语法都是先PHP循环出一个随机数组,如下:
$maxid = 6851;
$minid = 1;
$num = 5;
$jq='';
$nid='';
for($i=0;$i<$num;$i++){
$nid.=$jq.mt_rand($minid,$maxid);
$jq = ',';
}
for 循环出来的随机结果,如果ID中间又断续,随机地到信息会缺少。
有没有简便一点,一句话‘搞定’的方法呢?
我们先来接触几个知识点:
1、select rand()
得到随机数,返回 0 到 1 的随机数
2、SELECT MAX(column_name) FROM table_name;
返回字段column_name 最大值,在table_name之内。
3、floor(x)
返回小于或等于 x 的最大整数.
例子:
1、SELECT RAND()
返回:0-1之间随机数
2、select floor(rand()*5)
返回:10
3、SELECT MAX(id) FROM davids_city
3379
总结组合:
随机查询15条数据:
SELECT * FROM davids_city where id < (select floor(rand() * (SELECT MAX(id) from davids_city))) ORDER BY id desc limit 0,15
TAGS:mysql , 随机
来自Davids zhou博客原创文章请尊重作者:http://www.zongk.com/zongk/130.html转载请标注此链接