获取MySQL条目的列

3
有没有可能获取数据库条目所属列的名称?
也许我有三列,列名为col1、col2和col3。现在我想为每一列选择最大条目所在的列,类似于这样的操作。 Select name_of_column(max(col1,col2,col3))
我知道可以通过information_schema.COLUMNS表中的序数位置来查询列名,但如何获取表中数据库条目的序数位置呢?

什么是“entry”?列?列的值?行ID? - lexu
可能是第三行第一列的项,而不是表格中的任何一个条目。 - Sebastian Müller
3个回答

1

这将显示表中的列

SHOW COLUMNS FROM 'table';

然后,您将需要在脚本语言中迭代结果。


谢谢你的回复,但是难道没有其他方法可以在不使用脚本语言的情况下获取某个条目的列名吗? - Sebastian Müller

1

如果你想在纯SQL中实现它,你可以使用CASE语句和一个额外的变量:

 SELECT @m := GREATEST(col1, col2), 
 CASE @m 
      WHEN col1 THEN 'col1' 
      WHEN col2 THEN 'col2' 
 END 
 FROM my_table

1
你可以这样做:
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

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


好的论点,但在我的特殊情况下,这种情况很不可能发生。 - Sebastian Müller

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接