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

解决方案 »

  1.   

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

  2.   

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

  3.   

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

  4.   

    select  * from information_schema.columns where COLUMN_NAME='book_name'; 
    这个确实可以,但是就是不能一次性定位,因为当库和表比较多时,可能有很多表中列的COLUMN_NAME为book_name
    现在就是找一次性定位的语句。
      

  5.   

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

  6.   

    不懂你的’一次性定位‘是指什么?因为当库和表比较多时,可能有很多表中列的COLUMN_NAME为book_name
    请注意看返回的列,不是有库名和表名。这还不够清楚吗
      

  7.   

    我的意思是只找出eng-chi-dictionary是在哪个库的那个表下面的book_name的值。select  * from information_schema.columns where COLUMN_NAME='book_name'; 这个应该是找出所有列名为book_name的。但是我还是无法确定eng-chi-dictionary是在哪里?
      

  8.   

    select  * from information_schema.columns where COLUMN_NAME='book_name';
    可以得到所有有字段 book_name 的表
    其中:
    TABLE_SCHEMA 为隶属的库
    TABLE_NAME 为表名你需要遍历这个查询结果,逐个表查找 book_name 是否含有 eng-chi-dictionary