【问题标题】:Search database if column name/field name exists in a table in mySQL如果 mySQL 中的表中存在列名/字段名,则搜索数据库
【发布时间】:2012-04-23 11:17:55
【问题描述】:

如果mysql中的表中存在列名/字段名,有没有办法搜索数据库?

【问题讨论】:

标签: mysql sql database


【解决方案1】:

如果您想搜索两列或更多列,请使用以下提及的内容。

 SELECT DISTINCT TABLE_NAME 
        FROM INFORMATION_SCHEMA.COLUMNS
        WHERE COLUMN_NAME IN ('columnA','ColumnB')
            AND TABLE_SCHEMA='YourDatabase';

【讨论】:

    【解决方案2】:
    SHOW COLUMNS FROM tablename LIKE 'columnname'
    

    玩得开心! :-)

    更新:

    如 cmets 中所述,这仅搜索一个表,而不是整个数据库(每个表)。在这种情况下,请参考 DhruvPathak 的回答。

    【讨论】:

    • 那只会搜索 1 个表而不是整个数据库。
    • 嗯,好吧 - 如果某个列在某个表中,我确实理解了这个问题!
    【解决方案3】:

    如果你想在整个数据库中搜索,那么你应该尝试

    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 TABLE_NAME = 'table_name' 
    AND COLUMN_NAME = 'column_name'
    

    【讨论】:

      【解决方案4】:

      使用 INFORMATION_SCHEMA 数据库及其表。

      例如:

          SELECT *
      FROM   information_schema.columns
      WHERE  table_schema = 'MY_DATABASE'
             AND column_name IN ( 'MY_COLUMN_NAME' );  
      

      【讨论】:

        猜你喜欢
        • 2016-07-05
        • 1970-01-01
        • 1970-01-01
        • 2014-09-23
        • 1970-01-01
        • 2012-08-14
        • 1970-01-01
        • 2012-08-16
        • 2014-12-09
        相关资源
        最近更新 更多