如果 mySQL 中的表中存在列名/字段名,则搜索数据库
Posted
技术标签:
【中文标题】如果 mySQL 中的表中存在列名/字段名,则搜索数据库【英文标题】:Search database if column name/field name exists in a table in mySQL 【发布时间】:2012-04-23 11:17:55 【问题描述】:如果mysql中的表中存在列名/字段名,有没有办法搜索数据库?
【问题讨论】:
How to find all the tables in MySQL with specific column names in them? 的可能重复项 【参考方案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' );
【讨论】:
以上是关于如果 mySQL 中的表中存在列名/字段名,则搜索数据库的主要内容,如果未能解决你的问题,请参考以下文章