2011-12-05 41 views
0

有没有一种方法可以让MySQL获得列名的列值?MySQL从列值获取列名称

例如我有STATES表和CITY表,其中有'NAME'作为列名。

说我有两个STATES表和CITY'New York'。我想要一个查询,它将返回SATESCITY的列名称'New York'

我的预期的输出也能像

 值         柱       表
-----               ------             -----
纽约      NAME       STATES
纽约      NAME       CITY

上面只是一个例子。在大多数情况下,我只知道列值,我不知道列名或相应的表名称。通常我不需要知道不同的随机模式。我正在构建一个可用于多个数据库的问题解答系统。

+2

要避免开始g答案不符合你的要求,也许你可以通过更多的信息来启发我们,比如你期望的输出,一些数据和表格结构.. :) – Nonym

+0

我认为你正在寻找的东西可以用'CASE'声明,但请举例说明您的预期产出。 –

回答

0

查询时,以帮助防止歧义,总是限定字段与别名。列如

select states.name, 
     city.name as CityName 
    from 
     city 
     join states 
      on city.stateabbrev = states.stateabbrev 
    where 
     city.name = 'New York' 
0

你必须指定列名来选择数据,

获得列名,您可以运行SQL查询:

desc tablename 

或使用像ResultSetMetaData(在Java)