标签云取前n条,并随机排列

随着文章越来越多,在标签云的所有标签看起来也越来越臃肿,因此想到提取前N条热门标签。

起先mysql语句为:SELECT  *  from emlog_tag order by length(gid) desc limit 30

但问题来了,这样子gid就按长度顺序排列,前台显示的标签云字体也从大到小排列,看起来死板颇为不美观。

因此想再把这30条记录的排列顺序打乱,按tid排列或按随机函数rand()排列,捣鼓了老半天就是没写对语句。

最后实在不行便到百度问问上求救,大致半小时后,得到石亮东的解答!

select * from (select *
from emlog_tag
order by length(gid) desc
limit 20 ) as tb order by rand()

经测试,完全可用!呵呵,基础还是不扎实啊!