0

我想给列别名而不知道它们的名字,而只知道它们在表中的编号。

像这样的东西:

select firstColumn as myId, secondColumn as myName, thirdColumn as myLastName

我不知道列的实际名称

(我知道这个需求听起来很奇怪。是的,我知道列的名称。这是一个技术问题,如果你知道技术答案,请回答,不管动机如何。谢谢!)

4

1 回答 1

1

您可以做的最接近的方法是使用 INFORMATION_SCHEMA.COLUMNS 从序号位置查找列名。我意识到这不是你要求的,但我认为它可能尽可能接近。例如,您可以构建一个包含第 1、第 2 和第 5 列的 select 语句,如下所示:

SELECT CONCAT("SELECT ",
   GROUP_CONCAT(column_name SEPARATOR ", "),
   " FROM ", table_name)
FROM information_schema.columns
WHERE table_schema = database() 
    AND table_name = 'my_table' 
    AND ordinal_position IN (1,2,5) 
GROUP BY table_name 
ORDER BY ordinal_position;
于 2011-08-18T19:41:28.470 回答