mysql - 找到连续最低的一组数字,而不仅仅是最低的

标签 mysql database

我知道如何在给定 10 列的表格行中找到最小或最大的数字

greatest(a, b, c, d, etc).........least(a, b, c, d, etc).....

但我想要做的是找到一行中最少或最多的 3 列,而不仅仅是最少或最多的列。你看,每一列代表用户在某个类别中的排名。然后通过从所有十个类别中选出三个排名最高的类别来确定总体排名。

这是否可以在不必将列转换为行的情况下完成,因为尽管它需要相当多的额外代码,但它有其自身的复杂性。

最佳答案

SELECT `src`, `value`
FROM
(
    SELECT 'a' AS `src`, a AS `value` FROM yourtable WHERE id = 42
    UNION ALL
    SELECT 'b' AS `src`, b AS `value` FROM yourtable WHERE id = 42
    UNION ALL
    -- etc...
    UNION ALL
    SELECT 'j' AS `src`, j AS `value` FROM yourtable WHERE id = 42
) T1
ORDER BY `value`
LIMIT 3

关于mysql - 找到连续最低的一组数字,而不仅仅是最低的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8090557/

相关文章:

php - MySQLi插入,数据库连接成功但插入不成功

mysql - 用零填充 mysql INT 字段的开头

Mysql 将两个表列值加载到 Single 中

mysql - phpMyAdmin - #1267 - 操作 '<' 的排序规则组合非法

mysql - 一对一关系还是使用同一张表?

MySQL 查询比较一个值以获得另一个值

sql - 如何从表中加入和选择条件?

mysql - 没有子查询,但是mysql抛出子查询返回超过1行

php - MySQL、PHP : split up output table in categories

php - PrestaShop,插入数据库时​​获取ID