sql - 从最好的行中返回随机行(即 : 100 rows -> best 10 -> get 5 random)

标签 sql mysql

情况:一张有很多照片、分类和投票的表格。我目前正在这样做:

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/

相关文章:

mysql - 如何在具有特定别名的表上正确选择 MySql 函数值?

php - 函数返回 bool 值而不是字符串

php - 速记PDO查询

mysql - 如何在一列或多列中查找具有完全相同值的行

Mysql统计重复值不同列

.net - Windows Workflow Foundation 持久性架构解释?

mysql - SQL如何连接两个表并提取结果

mysql - 优化mysql多重左连接

sql - C:遍历 SQLite 记录并将每个值分配给变量

mysql - SQL 根据匹配值将多行合并为单行