数据库里的表很多,一时之间忘记了要找的表,只记得其中的某些字段,可以用下面的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

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐