MySQL实现表中取出随机数据

2016-01-29 14:59 3 1 收藏

MySQL实现表中取出随机数据,MySQL实现表中取出随机数据

【 tulaoshi.com - MySQL 】

以前在群里讨论过这个问题,比较的有意思.mysql的语法真好玩.他们原来都想用PHP的实现随机,但取出多条好像要进行两次以上查询.翻了手册,找到了下面这个语句,可以完成任务了。

SELECT * FROM table_name ORDER BY rand() LIMIT 5;

  rand在手册里是这么说的:
  RAND()
  RAND(N)
  返回在范围0到1.0内的随机浮点值。如果一个整数参数N被指定,它被用作种子值。

mysql select RAND();
- 0.5925
mysql select RAND(20);
- 0.1811
mysql select RAND(20);
- 0.1811
mysql select RAND();
- 0.2079
mysql select RAND();
- 0.7888

  你不能在一个ORDER BY子句用RAND()值使用列,因为ORDER BY将重复计算列多次。然而在MySQL3.23中,你可以做: SELECT * FROM table_name ORDER BY RAND(),这是有利于得到一个来自SELECT * FROM table1,table2 WHERE a=b AND c<d ORDER BY RAND() LIMIT 1000的集合的随机样本。注意在一个WHERE子句里的一个RAND()将在每次WHERE被执行时重新评估。

  但我试了一下,8千条记录的表,执行一次需要0.08 sec,.慢了些

  后来请教了google,得到如下代码

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/mysql/)

SELECT * FROM table_name AS r1 JOIN ( SELECT ROUND(RAND() * (SELECT MAX(id) FROM table_name)) AS id) AS r2 WHERE r1.id = r2.id ORDER BY r1.id ASC LIMIT 5;

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/mysql/)

来源:https://www.tulaoshi.com/n/20160129/1494924.html

延伸阅读
标签: ASP
  各位好今天我要告诉大家的是如何用ASP产生随机数。大家都知道大多数网站注册后 提供用户名和一个随机密码,但这个密码是如何产生的,现在我就向大家来介绍一下 请看下面的例子,用户可自行增加或减少随机的字符或数量。 <% Function gen_key(digits) 'Create and define array dim char_array(50) char_array(0) = "0"...
/*1.从同一个种子开始*/ #include stdio.h #include conio.h static unsigned long int next=1;int rand0(void) { next=next*1103515245+12345; return (unsigned int)(next/65536)%32768; }int main(void) { int count;for(count=0;count5;count++)    printf("%hd",rand0()); getch();...
1. 用您的会员名登录无忧空间站,左侧控制面板点击“自助管理”-“数据库”,选择您的数据库点“管理”,点击“高级管理” 2. 出现MYSQL高级管理登录框,用您的数据库用户名,密码登录,在登陆时,需要根据您的数据库编码选择对应的语言,一般可以选择“Chinese Simplified (zh-utf-8)”和“Chinese Simplified (zh-gb2312)”,根据你...
标签: Web开发
弄个随机数的东西,直接从网上找了一个现成的,简单看了两眼,感觉算法应该是对的,但今天测试下来,是不对的; 网上大多数人用的写法是这样的: function getRandomA(rMin,rMax) {     var range = rMax - rMin;  var r = rMin + Math.round( Math.random() * range);     return r; } 用十万的量跑了...
代码如下: select user_name,count(*) as count from user_table group by user_name having count1; 这个我在很早有发过一个asp下的ACCESS 的

经验教程

946

收藏

33
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部