mysql表中存在列
我有大约60个表,有些表有列字段名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
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'