当前位置:Gxlcms > PHP教程 > 请问如何根据某个特定字段column的值查询所在的库和表?

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

时间:2021-07-01 10:21:17 帮助过:3人阅读

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

人气教程排行