MySql 随机取N条数据

需求:用SQL语句随机从数据库中随机取N条数据。

以前不太清楚SQL语句可以直接随机取数据,今天查了一下,发现有两个随机函数: newid() 和 rand() 刚才验证了一下,只有一个,是 rand(),newid() 是MsSql 里面的,更正。(我还是不严谨。。囧)

所以随机取数据就可以这么写:

1
SELECT FROM aaa ORDER BY rand() LIMIT N

本文链接:http://www.zhuoqun.net/html/y2009/1227.html 转载请注明出处。TrackBack:http://www.zhuoqun.net/html/y2009/1227.html/trackback

相关日志


Posted in Other, 技术.

8条评论

  • At 2009.03.14 11:12, netstu said:

    你的sql语句好象也错了
    SELECT top N FROM aaa ORDER BY rand()
    mssql里面也支持rand()么?
    如果不支持,那么mysql中也不支持top n呀

    • At 2009.03.14 12:49, Dreamer said:

      不好意思,随手写错了。汗。已经更正

    • At 2009.03.14 11:50, stefyang said:
      • At 2009.03.14 12:49, Dreamer said:

        恩,看了一下,确实很不错,一般来说 join 的效率确实比较高。

      • At 2009.03.14 12:45, 文说有理 said:

        rand() 我不知道  top n mysql是肯定不行  别误导哦

        • At 2009.03.14 12:51, Dreamer said:

          不好意思,确实搞混了。

        • At 2009.06.03 17:58, liwei said:

          小数据量还行,数据太多效率很成问题。刚才用4w多条数据测试了一下,查询时间都要几十秒。

          • At 2009.06.04 20:26, Dreamer said:

            恩,性能确实是个问题

          (Required)
          (Required, will not be published)