MySQL实现表中取出随机数据

    以前在群里讨论过这个问题,比较的有意思.MySQL的语法真好玩.他们原来都想用PHP的实现随机,但取出多条好像要进行两次以上查询.翻了手册,找到了下面这个语句,可以完成任务了。  rand在手册里是这么说的:
      RAND()
      RAND(N)
      返回在范围0到1.0内的随机浮点值。如果一个整数参数N被指定,它被用作种子值。  你不能在一个ORDER BY子句用RAND()值使用列,因为ORDER BY将重复计算列多次。然而在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.08 sec,.慢了些
      后来请教了google,得到如下代码  执行效率需要0.02 sec.可惜的是,只有mysql 4.1.*以上才支持这样的子查询.

    以上内容转载.

相关文章
mysql的sql中若用IN查询时,若IN内的数据较大时,不走索引的解决办法Mysql性能之SQL语句性能优化WDCP升级5.2.17到5.3.17同时编译pdo_mysql如何测试MySQL的压力? mysql存储日期的方式基础篇:CentOS常用命令收藏利用mysql数据库中的TMD表修复“is marked as crashed and last (automatic?) repair failed”的错误使用批处理实现mysql数据库备份与上传MySQL优化全攻略-相关数据库命令distinct在mysql中查询多条不重复记录值的解决办法优化MySQL数据库性能的几个好方法在DOS命令行下发送邮件在MySQL里利用SQL语句批量替换页内字符随机读取数据库数据的代码(ACCESS)mysql导入数据库文件最大限制更改解决方法通过MyODBC,用ASP操作MYSQL
    标签:MySQL随机 评论数:2 发布于:2008-01-08 02:01:37

当前共有2条评论,我也要发表:

    我的名字:

    我的邮箱:

    作者:pen时间:2009-03-28 15:59:47回复

      代码呢?

      作者:simon时间:2009-03-28 18:00:33回复

        代码就在上面呀。