假设我有一个博客帖子表,它有一个表示帖子质量的等级字段。什么是随机找到帖子的最有效方法,并且返回排名较高的帖子的机会更高?
我将用PHP,MySQL,可能还有Lucene来实现它。
发布于 2011-01-17 00:36:06
一个简单的解决方案是包含对RAND()和rating列的调用,并将它们相乘:
SELECT title, content FROM blog_posts ORDER BY (rating + 1) * RAND() DESC LIMIT 1;如果您发现这对具有高评级的项目赋予了太多优先级,则可以使用SQRT
SELECT title, content FROM blog_posts ORDER BY SQRT(rating + 1) * RAND() DESC LIMIT 1;发布于 2011-01-17 00:29:26
SQL命令:
SELECT * FROM posts WHERE id = '$randomly_generated_ids' ORDER BY ratings ASC例如,$randomly_generated_ids可以是"13,10,5,20“
详情:
https://stackoverflow.com/questions/4706532
复制相似问题