Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
如何在不知道列名的情况下从表中的第二列获取最大值?在单个 SQL 查询中?
我有一组表,我想获得的值总是在第二列中(这是总是制作表的方式的一部分),但每个表中该列的名称不同。所以我可以使用一些简单的 SQL 查询来获取这个值。有任何想法吗?我知道使用 PHP 和附加查询来提取列名是可行的,但我正在寻找优雅的纯 SQL 解决方案:)
这将是一个乏味的过程。但是,如果有必要,您可以使用表ORDINAL_POSITION中的information_schema.columns列来获取第 N 列名称。
ORDINAL_POSITION
information_schema.columns
SELECT column_name FROM information_schema.columns WHERE table_name = "your table name" AND ordinal_position = 1 --replace 1 with your N
检查这个。
显而易见的解决方案是更改数据结构。使其相关和规范化。 在一个设计合理的数据库中,像你这样简单的问题是不可能的。 总有一个字段可以查询最高值。并且在字段列表中的位置绝对无关紧要。
作为重构数据库结构的副作用,您将获得解决未来数百个其他问题的解决方案。