【问题标题】:MySQL get the column name from column valueMySQL从列值中获取列名
【发布时间】:2011-12-05 12:33:24
【问题描述】:

MySQL 有没有办法在给定列值的情况下获取列名?

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

假设我在STATES 表和CITY 表中都有'New York'。我想要一个查询,它将返回SATESCITY 的列名给'New York'

我的预期输出可能是这样的

值           列       表
-----             ------        -----
纽约       名称       州
纽约     名称     城市

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

【问题讨论】:

  • 为了避免得到不符合您要求的答案,也许您可​​以提供更多信息,例如您的预期输出、一些数据和表结构.. :)
  • 我认为您正在寻找的内容可以通过 CASE 语句完成,但请举例说明您的预期输出。

标签: mysql sql database


【解决方案1】:

查询时,为了防止歧义,请始终使用 alias.column 来限定字段,例如

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

【讨论】:

    【解决方案2】:

    必须指定列名才能选择数据,

    获取列名,即可运行SQL查询:

    desc tablename
    

    或使用ResultSetMetaData(在java中)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-27
      • 1970-01-01
      • 2014-05-29
      • 2011-08-01
      • 2021-01-08
      • 2010-12-04
      • 2013-07-16
      相关资源
      最近更新 更多