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