下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

从MySQL的表里面取出随机数据的实现方法

作者:课课家教育     来源: http://www.kokojia.com点击数:1229发布时间: 2017-02-10 09:39:45

标签: MySQL编程代码数据库

大神带你学编程,欢迎选课

  MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQLAB公司。SQL在世界上是最流行的数据库语言。现在小编就要为大家介绍一下,从MySQL的表里面取出随机数据的实现方法。

从MySQL的表里面取出随机数据的实现方法_MySQL_编程代码_数据库_课课家

  实现方法:

  究竟怎样可以在MySQL的表里面取出随机数据呢?为了解决这一个问题,小编在网上搜索了不少的资料。功夫不负有心人,小编终于在手册里面找到了实现方法。当我们成功的执行这个实现方法的时候,那就可以顺利的完成这个任务了。具体编程代码,如下所示:SELECT * FROM table_name ORDER BY rand() LIMIT 5;

  小编在手册里面,曾经看到rand是这么说的:

  RAND()

  RAND(N)

  大家知道以上的语句,所代表的是什么意思吗?没错,就是返回在范围0到1.0内的随机浮点值。假如说有一个整数参数(在这里假设为N)已经被用户指定了,那么它就会被使用当作种子值。具体的编程代码,如图所示:

实现方法

  大家可以发现,我们不可以在一个ORDERBY子句用RAND()值使用列。有人就会问小编,这到底是为什么呢?其实原因很简单,那是因为ORDERBY将会重复计算列很多次。然而在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.08sec的时间,显然这相对来说是稍微慢了一点。于是小编在想有没有更加好的方法呢,后来小编就在网上搜索了相关的资料。最终小编终于找到了,具体的编程代码,如图所示:

更加好的方法

  当操作了以上的操作方法,小编发现最终执行效率仅仅只需要0.02sec.但是这种方法有一点点可惜,那就是仅仅只有在mysql4.1.*版本上面才支持这样的子查询。如果大家想要使用这种操作方法的话,那就赶快下载一个4.1的版本吧。

  小编结语:

  在这篇编程语言中,小编主要是向大家介绍了从MySQL的表里面取出随机数据的实现方法,希望这对大家有所帮助。课课家教育,你的设计天堂。

赞(29)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程