如果mySQL中的表中存在列名/字段名,则搜索数据库

时间:2012-04-11 06:37:44

标签: mysql sql database

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

4 个答案:

答案 0 :(得分:19)

使用INFORMATION_SCHEMA数据库及其表。

例如:

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

答案 1 :(得分:6)

SHOW COLUMNS FROM tablename LIKE 'columnname'

玩得开心! : - )

更新:

如评论中所述,这只搜索一个表,而不是整个数据库(每个表)。在这种情况下,请参阅DhruvPathak的答案。

答案 2 :(得分:6)

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

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'

答案 3 :(得分:1)

如果您想要搜索两个或更多列,请使用下面的说明。

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