如何在不知道列名的情况下从第N列获取最高值

时间:2013-03-04 12:44:06

标签: mysql pdo

如何在不知道列名的情况下从表中的第二列获取最高值?在单个SQL查询中?

我得到了一组表格,其中我想要得到的值总是在第二列(这是表格总是这样做的一部分),但是每个表格中该列的名称是不同的。所以我可以使用一些可以获得此值的简单SQL查询。有任何想法吗?我知道用PHP和其他查询来提取列的名称是可行的,但我正在寻找优雅,纯粹的SQL解决方案:)

2 个答案:

答案 0 :(得分:1)

这将是一个乏味的过程。但是,如果有必要,您可以使用ORDINAL_POSITION表中的information_schema.columns列来获取第N列名称。

SELECT column_name 
FROM information_schema.columns 
WHERE table_name = "your table name" 
AND ordinal_position = 1 --replace 1 with your N

Check this.

答案 1 :(得分:-1)

显而易见的解决方案是更改数据结构。制作 relational normalized 在一个设计合理的数据库中,像你这样简单的问题是不可能的 始终有一个字段可以查询最高值。并且在字段列表中的位置绝对无关紧要。

作为重构数据库结构的副作用,您将拥有一个解决方案,解决您将来遇到的其他数百个问题。