mysql:用数字引用列

时间:2011-08-18 18:05:44

标签: mysql aliases

我想在不知道名字的情况下给列别名,但只知道表中的数字。

这样的事情:

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

我不知道列的实际名称

(我知道需要听起来很奇怪。是的,我可以知道列的名称。这是一个技术问题,如果您知道技术答案,请回答,无论动机如何。谢谢!)

1 个答案:

答案 0 :(得分: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;