热搜:NVER node 开发 php

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

2024-09-15 15:10:01
请问如何根据某个特定字段column的值查询所在的库和表?

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