获取mysql条目的列

获取mysql条目的列,sql,mysql,database,Sql,Mysql,Database,是否有可能获取数据库项所属列的名称 也许我有三列,它们的列名分别为col1、col2和col3。现在我想为每一列选择最大条目的列,如下所示 选择列的名称(max(col1、col2、col3)) 我知道我可以根据列在information_schema.columns表中的顺序位置来询问列的名称,但如何获取表中数据库项的顺序位置?这将显示表中的列 SHOW COLUMNS FROM 'table'; 然后,您必须用脚本语言对结果进行迭代。如果您想在纯SQL中实现它,可以使用CASE语句和一个附

是否有可能获取数据库项所属列的名称

也许我有三列,它们的列名分别为col1、col2和col3。现在我想为每一列选择最大条目的列,如下所示

选择列的名称(max(col1、col2、col3))


我知道我可以根据列在information_schema.columns表中的顺序位置来询问列的名称,但如何获取表中数据库项的顺序位置?

这将显示表中的列

SHOW COLUMNS FROM 'table';

然后,您必须用脚本语言对结果进行迭代。

如果您想在纯SQL中实现它,可以使用CASE语句和一个附加变量:

 SELECT @m := GREATEST(col1, col2), 
 CASE @m 
      WHEN col1 THEN 'col1' 
      WHEN col2 THEN 'col2' 
 END 
 FROM my_table
您可以这样做:

select
    case true
        when col1 > col2 and col1 > col3 then 'col1'
        when col2 > col1 and col2 > col3 then 'col2'
        when col3 > col1 and col3 > col2 then 'col3'
    end 
from
    mytable

但是,如果最大值出现在多个列中,该怎么办?

谢谢,但是没有其他方法可以不使用脚本语言获取条目的列名吗?条目是什么?专栏?列的值?RowID?不是表中的条目,可能是第三个rowgood参数中第1列的条目,但在我的特殊情况下,它不太可能发生