文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络网络编程MYSQL如何实现MySQL表数据随机读取
精品推荐
特别推荐
·MYSQL数据的导出导入与版本的转换
·MySQL数据库简介
·安全的配置和应用MySQL数据库
·修改MySQL的默认密码
·初学MYSQL应知道:Mysql参数优化
·数据库安全应用 使用MySQL的23个注意事项
·入门:MYSQL基础
·轻松描述Windows上安装多个Mysql的步骤
·安装与卸载MySQL数据库系统服务的常见问题
·Mysql 安全注意事项
热点TOP10
·MYSQL数据的导出导入与版本的转换
·工作笔记:配置MySQL为高可用集群
·轻松八句话 教会你完全搞定MySQL数据库
·MySQL数据库简介
·MySQL数据库系统的常规管理介绍
·MySQL数据库学习手册之用MySQL解决一些常见问题
·强烈推荐,MySQL服务维护笔记
·安装与卸载MySQL数据库系统服务的常见问题
·Oracle 中使用层次查询方便处理财务报表
·MySQL数据库学习手册之安装MySQL

如何实现MySQL表数据随机读取

日期:2007年7月8日 作者: 查看:[大字体 中字体 小字体]


   以前在群里讨论过这个问题,比较的有意思.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 

  但我试了一下,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 4.1.*以上才支持这样的子查询.

(出处:清风学院






上一篇:解决sqlserver2005中文版与vs2005的WebApplicationProject的冲突问题

下一篇:SQL Server如何得详细错误处理信息
相关文章:
·教你学习如何破解XP登陆密码
·“黑客”教你如何远程控制计算机
·如何刺激女性私处更有效
·[加点]教你如何合理分配剧情点
·教你如何复制别人的QQ空间
·如何实现局域网打印机共享
·教你如何打造一道超级防御的电脑防火墙
·yahoo邮箱如何开通POP
·不同宽带模式接入下的路由器如何设置
·木马是如何盗取QQ密码的?
相关软件:

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.vipcn.net
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.net All Rights Reserved. 鄂ICP备05000083号Powered by:viphot