如果mysql中的表中存在列名/字段名,是否有办法搜索数据库?
答案 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';