mysql表中存在列

mysql表中存在列,mysql,sql,Mysql,Sql,我有大约60个表,有些表有列字段名uid。我有一个查询,它提供了有关数据库和表信息架构的详细信息。我只想知道在多少表中存在uid列。下面是一个查询 SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='records' AND column_name='uid' 这里它检查一个表。它如何检查所有表?试试这个 SELECT T.TABLE_NAME,(CASE WHEN C.COLUMN_NAME IS NULL THEN 'NO

我有大约60个表,有些表有列字段名
uid
。我有一个查询,它提供了有关数据库和表信息架构的详细信息。我只想知道在多少表中存在
uid
列。下面是一个查询

SELECT * FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_NAME='records' AND column_name='uid'
这里它检查一个表。它如何检查所有表?

试试这个

SELECT T.TABLE_NAME,(CASE WHEN C.COLUMN_NAME IS NULL THEN 'NO' ELSE 'YES' END) Result 
    FROM INFORMATION_SCHEMA.TABLES T
        LEFT OUTER JOIN INFORMATION_SCHEMA.COLUMNS C ON C.TABLE_NAME = T.TABLE_NAME 
AND C.COLUMN_NAME='uid'

它将列出包含结果列的所有表格

表格名称
列从何处移动到选择:

SELECT t.table_name,
       max(CASE WHEN t.Column_name = 'uid' then 'Yes' else 'No' end) as YourInd
FROM  INFORMATION_SCHEMA.COLUMNS t
GROUP BY t.table_name
为了满足您的要求:“我只想知道检查uid列在多少个表中存在”:


为了满足您的第二个要求:“我只需要两列,表的第一个名称和值为YES或NO的Exist的第二列”


我想这就行了

选择表名,当列名为'uid'时为CASE,然后从信息模式中选择1,否则0以'EXISTS'结束。按表名分组的列使用以下查询

SELECT TABLE_NAME,
   CASE
       WHEN COLUMN_NAME = 'uid' THEN "YES"
       ELSE "NO"
   END AS 'EXISTS'
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA='<database_name>'
  AND COLUMN_NAME='uid'
选择表格名称,
案例
当列名称='uid'时,则为“是”
否则“不”
以“存在”结束
从信息_SCHEMA.COLUMNS
其中表_SCHEMA=“”
和列_NAME='uid'

我只需要两列值为YES或no的表名第一列和Exist第二列。这是如何工作的?它将产生大量重复记录,他将从表中选择两次@WasiqMuhammadAnd,对于包含两次“uid”columntable的表,这将同时给出“YES”和“NO”不,我只是用表连接了列(列的左连接)。因此,如果表中有列“uid”,那么只有SCHEMA.COLUMNS信息才会显示,否则它将显示空值,如果左连接,则bcs it。所有的条件都在ON条款中,而不是WHERE条款中。请执行查询并检查结果。表两次-否,但两个表-是。我没有看到您从列中选择了一次,从表中选择了一次。我只需要两列,表的第一个名称和值为YES或NO的Exist的第二个列–字段列表中的未知列“t.table_name”@WasiqMuhammad我将解决方案固定为一个,从表中只选择一个,而不是两个。我需要两列第一个列表名称存在第二列,该列具有“是”或“否”等枚举
SELECT t.table_name, if(c.column_name = 'Ref', 'yes', 'no') as exist 
FROM information_schema.COLUMNS c
left join information_schema.tables t
on t.TABLE_NAME = c.TABLE_NAME
group by c.TABLE_NAME
SELECT TABLE_NAME,
   CASE
       WHEN COLUMN_NAME = 'uid' THEN "YES"
       ELSE "NO"
   END AS 'EXISTS'
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA='<database_name>'
  AND COLUMN_NAME='uid'