此文章主要向大家讲述的是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好导航站长资讯发布,如需转载请注明出处。
一些用户的Windows 7系统开机后出现黑屏,代码为 Windows无法启动: WindowsSystem32ConfigSystem”。这个问题该如何修复呢?现在小编就给大家分析一下吧。 其实这个代码的意思是引导文件丢失了,引导文件(NTLDR)一般存放于C盘根目录下,是一个具有隐藏和只读属性...
最近一些Windows 7用户反馈说,自己在截屏的时候出现黑屏,导致自己截的图黑呼呼一片。这个问题该怎么解决?今天小编就为大家提供一个解决的方法。 步骤 1 在windows xp时代,很多用户都曾被视频截图后的“全黑图片”困扰。对此,在解决本地播放时出现的截图变黑问题,一般有两个方法可以用来解...
用Windows 7久了,C盘越来越大,原来50G的空间基本用完了,又不想重装系统,就想着能不能直接扩容。 在网上搜了半天,看了无数教程,都写得不明不白的,结合了几篇教程才终于搞明白。 重新总结一下,方便有需要的人。 所用软件: http://www.jb51.net/softs/57895...
解决方法: 其实处理这些使用流氓软件,需要将相关的.exe文件删除,使它不能再运行,或者直接清除这个服务本身,使计算机重启的时候,它不会再启动。比如Hijackthis扫描,在扫描日志中,一般会把非Windows系统的服务以023的方式列出来,如下面这段: O23 - ...
经常听见有人说用Windows 7玩网络游戏的时候网络延时比较高,也就是ping比平时xp的时候高一点,一直找不到原因,很苦恼。今天我们终于找到理由了,原来是Windows 7的一个服务在作怪,这个服务叫:Multimedia Class Scheduler,就是这个服务让我的PING如此高,问题是...
每一位用户的Windows 7系统上,或多或少都会有一到两个自己常用的文件夹,那么如何将这些常用的文件夹添加到任务栏上,增加我们的工作效率呢 许多用户只知道移动exe程序文件到任务栏,却不知道文件夹怎么移,下面小编通过图文教程来告诉大家方法。 操作方法: 1、首先将你使用频率最高的那个文件夹重命...