显示列名MySQL

时间:2016-04-26 23:36:58

标签: mysql mysql-workbench

有没有办法从表中获取列名,此列中的所有值都相同!

实施例!如果我会有这样的代码,它将返回答案' Works'

Table1
ID      Name     Works
1       Andre     Yes
2       John      Yes
3       Stewart   Yes

2 个答案:

答案 0 :(得分:1)

我不知道表中的列是否已知。如果没有,你可以通过以下方式获得它们:

desc Table1;

或者如果您使用的是更高版本的MySQL,则可以使用:

select column_name from information_schema.columns where table_schema='your_schema' and table_name='Table1';

然后尝试以下语句,并将参数@column替换为从上述语句中检索的列名:

select count(*) from (select count(*) as c from Table1 as t group by t.@column) as sub;

如果结果为1,则列就是您想要的。结果表示此列有多少个不同的值。

我想你必须使用一种编程语言或存储过程。您无法使用单个SQL语句实现此目的。

答案 1 :(得分:0)

我不确定是否可以从MySQL本身运行,但您可以通过脚本引擎执行此操作。

您可以在每列上运行循环并执行查询:

SELECT 
  COUNT(DISTINCT column_name) 
  FROM table_name;

看到你在结果中得到1条记录