【问题标题】:How can I check if a column exists into a table from a database? [closed]如何检查数据库中的表中是否存在列? [关闭]
【发布时间】:2013-06-23 15:39:17
【问题描述】:

我有一个巨大的数据库和一个列名,我不确定它是否存在于我的任何表中。 如何检查它的存在?

【问题讨论】:

  • VladH 在我的回答中指出,这就是他正在寻找的 - 如果可以重新措辞以反映这一点,我觉得它会不那么广泛。他甚至指出他的问题是不知道哪个表确切地包含该列。
  • 我编辑了你的帖子以保持一切清晰。

标签: mysql


【解决方案1】:

SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = 'db_name'
AND COLUMN_NAME = 'column_name'

【讨论】:

  • 干杯老兄!问题是我不知道包含表的名称,但显然“SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = 'db_name' AND COLUMN_NAME = 'column_name'”有效。
  • 是的,您可以编辑 WHERE 子句以满足您的需求 - 很高兴它为您服务!
【解决方案2】:

如果您需要检查所有表格,您可能必须先列出表格:

SHOW TABLES FROM database_name;

然后,遍历表(在代码中,例如 PHP),并执行以下查询:

SHOW COLUMNS FROM database_name.table_name LIKE 'mycol';

如果该列存在于表中,这将返回一个结果。

您也可以直接从 information_schema 中选择,但我发现在 MySQL 和大型数据库的某些情况下这会非常慢。

【讨论】:

    【解决方案3】:
    SELECT DISTINCT TABLE_NAME 
        FROM INFORMATION_SCHEMA.COLUMNS
        WHERE COLUMN_NAME IN ('columnA','ColumnB')
            AND TABLE_SCHEMA='YourDatabase';
    
    please check above code with your database
    

    【讨论】:

    • 谢谢,效果很好!
    【解决方案4】:
    SELECT * FROM INFORMATION_SCHEMA.columns WHERE TABLE_NAME ='table_name' AND COLUMN_NAME ='col_name'

    【讨论】:

      【解决方案5】:

      使用信息架构

      select *
      from information_schema.tables
      where table_name = 'employee'
      and table_schema = 'test';
      

      【讨论】:

        猜你喜欢
        • 2013-10-06
        • 2021-12-16
        • 2012-07-26
        • 1970-01-01
        • 1970-01-01
        • 2013-07-16
        • 2015-02-02
        • 2017-11-07
        • 2016-02-23
        相关资源
        最近更新 更多