MySql 随机取N条数据
03月 13th, 2009 — Dreamer需求:用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











你的sql语句好象也错了
SELECT top N FROM aaa ORDER BY rand()
mssql里面也支持rand()么?
如果不支持,那么mysql中也不支持top n呀
不好意思,随手写错了。汗。已经更正
这么写效率很低的
推荐看看
http://jnote.cn/blog/mysql/mysql-rand-efficiency.html
和
http://jan.kneschke.de/2007/2/15/order-by-rand
恩,看了一下,确实很不错,一般来说 join 的效率确实比较高。
rand() 我不知道 top n mysql是肯定不行 别误导哦
不好意思,确实搞混了。
小数据量还行,数据太多效率很成问题。刚才用4w多条数据测试了一下,查询时间都要几十秒。
恩,性能确实是个问题