聘我网

新概念招聘3.0

如何优化sql实现最大的N条中随机选取之一?

vote up0vote downstar
select .. from (
    Select ... from ... order by weight desc limit N
    ) order by rand()

上面的需要建立一个临时表,所以不达标,如何优化?

 

2 个答复

vote up0vote downcheck

使用limit:

SELECT ... order by weight desc limit R,1

将上面的R换成1~N间的一个随机数即可。

链接
vote up0vote down

rand()作为查询中的一列然后order by:

select rand() as YourBasis,
       OtherFields  from YourTable 
       where ... 
       order by 1
链接

您的回答





不是您要找的问题? 浏览其他含有标签 的问题或者 自己问个.