2011-07-18 32 views
2

化名列时,我有一个查询结果是这样的:rs.getMetaData()getColumnName(i)与关于MySQL

select col as newName from table; 

,然后我做(在Java中):

rs.getMetaData().getColumnName(i) 

它返回列,而不是“了newName”的名字......

然而,如果我做

select concat(col,'') as newName from table; 

它返回预期的“newName”

是否有一种方法来获得“newName”而不与THO SQL查询搞乱?

这是所有MySQL,JAVA,Tomcat的6

+0

这真的不是一个系统管理员的问题,这是一个编程问题。投票移动。 – womble

+0

对不起,不打算把这个放在serverfault。 – epeleg

回答

5

尝试使用getColumnLabel()代替:

rs.getMetaData().getColumnLabel(i); 

仅供参考,我做了一个测试,并rs.getMetaData().getColumnName(i)为我工作 - 也就是说,它给我的别名 ,而不是列名,但可能您使用的是JDBC驱动程序和/或mysql数据库的旧版本。

+0

对于我getColumnName只有在别名在表达式上时才起作用。 E.E. '选择concat(field,'')作为表的别名确实返回了别名,但是'select field作为表的别名返回了原来的名字。 – epeleg