mysql获取列名的最大值

用户1022585

我有一张这样的表myTable

Name    type1    type2    type3
----------------------------------------
John    3        6        9
Craig   5        2        24

我想获得“John”最高的列 - 即列名和数量。

我想不出一个解决方案来处理它,任何指针?

萨蒂安德拉·库马尔·辛格

使用下面的查询使用名称查找最高值列:

SELECT Name, @highest_val:= GREATEST(type1, type2, type3) AS highest_col_value,
   CASE @highest_val WHEN type1 THEN 'type1'
                     WHEN type2 THEN 'type2'
                     WHEN type3 THEN 'type3'                         
   END AS highest_value_column_name
FROM myTable
WHERE Name = 'John';

如果要检索所有记录,请使用以下查询:

SELECT Name, @highest_val:= GREATEST(type1, type2, type3) AS highest_col_value,
   CASE @highest_val WHEN type1 THEN 'type1'
                     WHEN type2 THEN 'type2'
                     WHEN type3 THEN 'type3'                         
   END AS highest_value_column_name
FROM myTable;

这里GREATEST()MySql 函数找到给定列的最大值 ashighest_col_value并将CASE与每一列匹配以查找列名 as highest_value_column_name

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章