我有一个巨大的数据库和一个列名,我不确定它是否存在于我的任何表中。如何检查它的存在?
问问题
5175 次
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 回答