情况:一张有很多照片、分类和投票的表格。我目前正在这样做:
SELECT n.nid, n.title, ....... order by v.value desc limit 0,5
我想要的是在按选票对我的行进行排序之后获得一个随机结果集。现在,一个包含数百条记录的表为我提供了最好的 5 行。总是相同的 5。这是相当重复的,但当然随机给出 5 行并不是最好的选择,因为并非所有行都有高质量的照片。有些可能不太好。
我不想只是这样做:
SELECT n.nid, ...... order by RAND() limit 0,5
我正在寻找的是这样的:
SELECT n.nid, ..... order by RAND( v.value desc limit 0.10) limit 0,5
当然那不是 SQL :) 涉及的表最多有 50.000 行。
谢谢!
最佳答案
嵌套查询不能解决问题吗?首先选择您的 10 张最佳照片,然后随机选择 5 张。或者临时表,但它几乎是一个嵌套查询。
编辑:感谢 Lukáš 的链接
关于sql - 从最好的行中返回随机行(即 : 100 rows -> best 10 -> get 5 random),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1643042/