我知道如何在给定10列的表格行中找到最小或最大的数字
greatest(a, b, c, d, etc).........least(a, b, c, d, etc).....
但我想要做的是连续找到3个最小或最大的列,而不仅仅是单个最小或最大的列。您会看到,每列代表某个catergory中用户的排名。然后根据所有十个中排名最高的三个catergories来确定整体排名。
这可以在不必将列变成行的情况下完成,因为尽管事实上它需要相当多的额外代码,但它还有其自身的复杂性。
答案 0 :(得分:2)
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