从MySQL数据库表中取出随机数据的代码
MySQL如何从表中取出随机数据 以前在群里讨论过这个问题,比较的有意思.mysql的语法真好玩. 他们原来都想用PHP的实现随机,但取出多条好像要进行两次以上查询. 翻了手册,找到了下面这个语句,可以完成任务了 SELECT*FROMtable_nameORDERBYrand()LIMIT5; rand在手册里是这么说的: 但我试了一下,8千条记录的表,执行一次需要0.08sec,.慢了些 后来请教了google,得到如下代码 <div class="jb51code"> <pre class="brush:sql;"> 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.02sec.可惜的是,只有mysql4.1.*以上才支持这样的子查询. 以下是php代码: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |