选择条目“x”的SELECT id和COLUMN_NAME

时间:2015-09-03 12:35:02

标签: mysql sql

假设下面的电子表格代表我的数据库表。

database table

我需要一个在条目'1000'上搜索此表的查询,并为我提供'id'及其找到它的column_name。我将得到以下结果集:

id   column_name
---  ---------
1    column_c
2    column_a
2    column_d
4    column_d

我知道这是一个关于数据库查询的非常不寻常的问题,因为我还没找到我想要的东西。

1 个答案:

答案 0 :(得分:3)

执行此操作的最简单方法可能是将表格取消,以使列成为行,然后使用匹配值过滤行。由于MySQL没有任何unpivot运算符,我们可以使用union作为集合连接的一堆查询来执行此操作。每个查询都包含一个指定源列名称的文字值。

select id, 'Column_a' Col from your_table where column_a = 1000 -- or like '1000%' etc.
union all
select id, 'Column_b' Col from your_table where column_b = 1000
union all
select id, 'Column_c' Col from your_table where column_c = 1000
union all
select id, 'Column_d' Col from your_table where column_d = 1000
order by id, Col

Sample SQL Fiddle