数据库里的表很多,一时之间忘记了要找的表,只记得其中的某些字段,可以用下面的sql来查询在这个数据库中,存在这个字段的所有表,是不是就缩小查找范围了呢? 

-- 注释: columnName 字段名   dbName 数据库名
-- AND TABLE_NAME NOT LIKE 'vw%'   --> 作用:排除视图
SELECT DISTINCT TABLE_NAME FROM information_schema.COLUMNS WHERE COLUMN_NAME = 'columnName' AND TABLE_SCHEMA='dbName' AND TABLE_NAME NOT LIKE 'vw%';

例如,我要查找在zhongyaotongzhi数据库中,有code这个字段的所有表

-- 举例:我要查数据库[zhongyaotongzhi]中包含字段[code]的所有表
select distinct TABLE_NAME from information_schema.`COLUMNS` where COLUMN_NAME='code' and TABLE_SCHEMA='zhongyaotongzhi' and TABLE_NAME not like 'vm%';

亲测有效~为了记录特此mark~ 

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐