在 mysql 的表中搜索特定行值的列名
Posted
技术标签:
【中文标题】在 mysql 的表中搜索特定行值的列名【英文标题】:Search the column name(s) for a specific row value in a table in mysql 【发布时间】:2014-05-28 20:08:10 【问题描述】:我有一个表“ABCD”,其中有 20 个不同的列,按我的员工姓名(根据要求,这是该组织可能的最佳表结构),现在我有一种情况需要编写 SQL 查询查找具有特定值(例如 c)的特定行(例如 id 3)的“列名”。
身份证 | Col1 | Col2 | Col3 | Col4 | Col5 | Col6 ------------------------------------------ 1 |一个 |乙| C | C |乙|一种 2 | C |乙|一个 |一个 | C |乙 3 |乙|一个 | C |乙|一个 | C我需要获取 ID 为“3”的行中值为“c”的所有“列名”。
【问题讨论】:
该问题被标记为 mysql 和 SQL Server。是哪个? 谁提出了这个要求?这是一个非常糟糕的桌子设计。想象一下让另一名员工...... 我有一个数据库,其中包含我必须管理的此类表 - 每次看到它都会让我哭泣。 @JustinHelgerson 因此我在写 cmets 而不是答案。 这个问题似乎离题了,因为它很傻 【参考方案1】:你应该重新考虑数据库设计
select 'col1' from abcd where id=3 and col1='C'
union
select 'col2' from abcd where id=3 and col2='C'
union
...
您可以轻松地在 php 中动态生成此脚本
【讨论】:
@Aditya 动态生成 sql 依赖于 SQL DB 引擎。以上是关于在 mysql 的表中搜索特定行值的列名的主要内容,如果未能解决你的问题,请参考以下文章