Home  >  Article  >  Backend Development  >  请问如何根据某个特定字段column的值查询所在的库和表?

请问如何根据某个特定字段column的值查询所在的库和表?

WBOY
WBOYOriginal
2016-06-23 14:13:15999browse

MySQL SQL

请问对于mysql>=5,  如果知道一个字段column名为book_name的值为eng-chi-dictionary,请问如何查询到这个字段所在的库名和表名? sql 语句是?
谢谢

回复讨论(解决方案)

 select  * from information_schema.columns where COLUMN_NAME='eng-chi-dictionary';

COLUMN_NAME应该是book_name
book_name的值是eng-chi-dictionary,我现在是知道有个book_name叫做eng-chi-dictionary,请问如何找到schema_name  table_name

eng-chi-dictionary 是字段值吧
 select  * from information_schema.columns where COLUMN_NAME='book_name';

select  * from information_schema.columns where COLUMN_NAME='book_name'; 


这个确实可以,但是就是不能一次性定位,因为当库和表比较多时,可能有很多表中列的COLUMN_NAME为book_name


现在就是找一次性定位的语句。

一次性定位的语句!
虽然我们没有那么高的水平,不能说一定没有
但是象 phpmyadmin 这样的专业团队在实现“搜索”功能时,也是用 php 循环来完成的。
可见没有这样的语句是“真的”
见 db_search.php 文件

不懂你的’一次性定位‘是指什么?

因为当库和表比较多时,可能有很多表中列的COLUMN_NAME为book_name
请注意看返回的列,不是有库名和表名。这还不够清楚吗

我的意思是只找出eng-chi-dictionary是在哪个库的那个表下面的book_name的值。

select  * from information_schema.columns where COLUMN_NAME='book_name'; 

这个应该是找出所有列名为book_name的。但是我还是无法确定eng-chi-dictionary是在哪里?

select  * from information_schema.columns where COLUMN_NAME='book_name';
可以得到所有有字段 book_name 的表
其中:
TABLE_SCHEMA 为隶属的库
TABLE_NAME 为表名

你需要遍历这个查询结果,逐个表查找 book_name 是否含有 eng-chi-dictionary

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn