当前位置:首页 > 系统运维 > 正文内容

MySQL数据库如何从相关表中取出随机数据?

a8116255316年前 (2010-06-13)系统运维14

此文章主要向大家讲述的是MySQL数据库从相关表中取出随机数据的实际操作方案,为了实现随机,我们从手册中找到了以下这个语句,可以完成今天的任务,以下就是具体方案的描述,望大家借鉴。

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

rand在手册里是这么说的::

RAND()

RAND(N)

返回在范围0到1.0内的随机浮点值。如果一个整数参数N被指定,它被用作种子值。

MySQL(和PHP搭配之更佳组合)> select RAND();   -> 0.5925   MySQL(和PHP搭配之更佳组合)> select RAND(20);   -> 0.1811   MySQL(和PHP搭配之更佳组合)> select RAND(20);   -> 0.1811   MySQL(和PHP搭配之更佳组合)> select RAND();   -> 0.2079   MySQL(和PHP搭配之更佳组合)> select RAND();   -> 0.7888   

你不能在一个ORDER BY子句用RAND()值使用列,因为ORDER BY将重复计算列多次。然而在MySQL(和PHP搭配之更佳组合)3.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,得到如下代码:

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;  

执行效率需要0.02 sec.可惜的是,只有MySQL(和PHP搭配之更佳组合) 4.1.*以上才支持这样的子查询.

上面说了这么多内容,是关于对MySQL数据库从表中取出随机数据的介绍,不知道各位对MySQL的认识是不是更上一层楼了,时时关注2345hao.cn,学习最新Mysql技术。

扫描二维码推送至手机访问。

版权声明:本文由2345好导航站长资讯发布,如需转载请注明出处。

本文链接:http://2345hao.cn/blog/index.php/post/21171.html

分享给朋友:

“MySQL数据库如何从相关表中取出随机数据?” 的相关文章

windows 7查看电脑近期使用情况确定有没有被他人使用

windows 7查看电脑近期使用情况确定有没有被他人使用

我一个朋友最近装装了Windows 7,他总感觉有人用了他的电脑,但是一直不确定,他想知道有没有人动用他的电脑,问我有没有办法 我说设置一下就行了: 启动Windows 7,在搜索栏中输入编辑组,马上就搜索到了编辑组策略,点击即可启动程序编辑组策略。依次展开组策略左侧树形列表的计算机配置/管理模...

windows 7系统开机后出现黑屏提示Windows无法启动

windows 7系统开机后出现黑屏提示Windows无法启动

一些用户的Windows 7系统开机后出现黑屏,代码为 Windows无法启动: WindowsSystem32ConfigSystem”。这个问题该如何修复呢?现在小编就给大家分析一下吧。 其实这个代码的意思是引导文件丢失了,引导文件(NTLDR)一般存放于C盘根目录下,是一个具有隐藏和只读属性...

windows 7系统重装后卡在正在启动Windows开机界面怎么办

windows 7系统重装后卡在正在启动Windows开机界面怎么办

重装系统是我们面对许多电脑问题时的终极方法,不过重装系统也不意味着就能将全部的问题都修复。一些用户在重装系统后开机时,电脑卡在“正在启动Windows”开机界面上了,这要怎么解决呢? Windows 7系统重装后卡在开机界面的解决方法: 一、首先可以看看该故障出现的原因是否是因为启动了acp...

windows 7系统下Windows服务被流氓软件注册怎么办?Windows服务

windows 7系统下Windows服务被流氓软件注册怎么办?Windows服务

解决方法: 其实处理这些使用流氓软件,需要将相关的.exe文件删除,使它不能再运行,或者直接清除这个服务本身,使计算机重启的时候,它不会再启动。比如Hijackthis扫描,在扫描日志中,一般会把非Windows系统的服务以023的方式列出来,如下面这段: O23 - ...

微软为windows 7用户重新发布补丁KB2952664 帮助提升Win10升级体

微软为windows 7用户重新发布补丁KB2952664 帮助提升Win10升级体

1月13日消息,微软今天为Windows 7(SP1)用户重新推送了编号为KB2952664的更新补丁,该更新在官方KB知识库中的描述为“Windows 7系统升级兼容性更新”,用于帮助微软改进当前版本系统,提升升级到最新版Win10系统的体验。 这项更新还用于在系统中显示Windows10更新提...

Ubuntu 14.04安装Wine以便使用Windows应用

Ubuntu 14.04安装Wine以便使用Windows应用

假如你想要在Ubuntu上使用Windows应用,就需要用到Wine了,除了支持Linux系统外,Wine还可运行于其他系统,是个非常使用的软件,下面小编就以Ubuntu 14.04为例,给大家介绍下Ubuntu 14.04安装Wine的步骤。 Ubuntu 14.04安装Wine的步骤 1...