2

我有一个巨大的数据库和一个列名,我不确定它是否存在于我的任何表中。如何检查它的存在?

4

5 回答 5

3

SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = 'db_name'
AND COLUMN_NAME = 'column_name'

于 2013-06-26T13:17:55.760 回答
2

如果您需要检查所有表格,您可能必须先列出表格:

SHOW TABLES FROM database_name;

然后,遍历表(在代码中,例如 PHP),并执行以下查询:

SHOW COLUMNS FROM database_name.table_name LIKE 'mycol';

如果该列存在于表中,这将返回一个结果。

您也可以直接从 information_schema 中选择,但我发现在 MySQL 和大型数据库的某些情况下这会非常慢。

于 2013-06-26T13:17:58.270 回答
1
SELECT DISTINCT TABLE_NAME 
    FROM INFORMATION_SCHEMA.COLUMNS
    WHERE COLUMN_NAME IN ('columnA','ColumnB')
        AND TABLE_SCHEMA='YourDatabase';

please check above code with your database
于 2013-06-26T13:18:43.830 回答
0
SELECT * FROM INFORMATION_SCHEMA.columns WHERE TABLE_NAME ='table_name' AND COLUMN_NAME ='col_name'

于 2013-06-26T13:19:28.383 回答
0

使用信息架构

select *
from information_schema.tables
where table_name = 'employee'
and table_schema = 'test';
于 2013-06-26T13:20:41.257 回答