我试图从我的数据库中随机挑选文章,其中高评级的文章被选中的机会更高
SELECT * FROM articles WHERE RAND()>0.9 ORDER BY rating DESC LIMIT 3我的问题是:它会随机选择整个表格,还是直到它找到3篇随机数大于0.9的文章
发布于 2015-06-28 23:39:23
如果您有INDEX(rating),那么在查找3行之前,查询可能会获取3或4 (3/(1-0.1))行。
但这根本不会给你“高评级文章被选中的机会更高”。它只给你一个随机的90%的最高排名的行。
这可能会得到您想要的结果,但需要进行全表扫描:
SELECT *
FROM articles
ORDER BY rating * RAND() DESC
LIMIT 3;https://stackoverflow.com/questions/31098423
复制相似问题