当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
计算机四级指导:如何实现MySQL表数据随机读取
发布时间:2010/3/24 19:12:07 来源:城市学习网 编辑:admin

  如何实现MySQL表数据随机读取
  以前在群里讨论过这个问题,比较的有意思.mysql的语法真好玩.他们原来都想用PHP的实现随机,但取出多条好像要进行两次以上查询.翻了手册,找到了下面这个语句,可以完成任务了。 SELECTFROM table_name ORDER...
  以前在群里讨论过这个问题,比较的有意思.mysql的语法真好玩.他们原来都想用PHP的实现随机,但取出多条好像要进行两次以上查询.翻了手册,找到了下面这个语句,可以完成任务了。
  SELECTFROM table_name ORDER BY rand LIMIT 5;
  rand在手册里是这么说的:
  RAND ,RAND :返回在范围0到1.0内的随机浮点值。如果一个整数参数N被指定,它被用作种子值。
  mysql select RAND;- 0.5925mysql select RAND;- 0.1811mysql select RAND;- 0.1811mysql select RAND;- 0.2079mysql select RAND;- 0.7888
  你不能在一个ORDER BY子句用RAND值使用列,因为ORDER BY将重复计算列多次。然而在MySQL3.23中,你可以做:
  SELECTFROM table_name ORDER BY RAND,这是有利于得到一个来自SELECTFROM table1,table2 WHERE a=b AND c
  但我试了一下,8千条记录的表,执行一次需要0.08 sec,.慢了些
  后来请教了google,得到如下代码
  SELECT FROM table_name AS r1 JOIN FROM table_name)) AS id)AS r2WHERE r1.id = r2.idORDER BY r1.id ASCLIMIT 5;
  执行效率需要0.02 sec.可惜的是,只有mysql 4.1.以上才支持这样的子查询.

广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved