如果mysql中的表中存在列名/字段名,有没有办法搜索数据库?
问问题
27370 次
4 回答
21
使用 INFORMATION_SCHEMA 数据库及其表。
例如:
SELECT *
FROM information_schema.columns
WHERE table_schema = 'MY_DATABASE'
AND column_name IN ( 'MY_COLUMN_NAME' );
于 2012-04-11T06:38:21.330 回答
6
SHOW COLUMNS FROM tablename LIKE 'columnname'
玩得开心 !:-)
更新:
如评论中所述,这仅搜索一个表,而不是整个数据库(每个表)。在这种情况下,请参考 DhruvPathak 的回答。
于 2012-04-11T06:40:32.807 回答
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'
于 2012-04-11T06:48:22.133 回答
1
如果您想搜索两列或更多列,请使用下面提到的以下内容。
SELECT DISTINCT TABLE_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME IN ('columnA','ColumnB')
AND TABLE_SCHEMA='YourDatabase';
于 2015-01-09T12:20:20.927 回答