求一个SQL语句,在一个库中搜索一个值返回有这个值的表名搜索SQL

解决方案 »

  1.   

    没有 这样的SQL语句,用SP解决
      

  2.   

    用程序或者存储过程,去访问 INFORMATION_SCHEMA.COLUMNS 表得到所有的列名,表名。然后通过程序语句生成 select * from xxx where col1 like ... or col2 like ...的SQL语句分别执行以判断是否有结果返回。具体语句可以先参考MYSQL官方免费手册中的例子自己先写一下。
      

  3.   


    我只会“SELECT 列名称 FROM 表名称 WHERE 列 运算符 值”但是我想有更方便的方法,教程下载了。请问你说的程序语句的关键词是什么,我先看看我能看懂不
      

  4.   

    不太明白,下面写了2种。
    1、-- 从系统表,拿表名、字段名。
    select TABLE_NAME from information_schema.TABLES where TABLE_NAME='TB_Member' and TABLE_SCHEMA='member'2、直接在查询语句中写死。
    select *,'TB_Test' as TableName from test.TB_Test where 1=1;
      

  5.   


    第二句“select * ,'TB_Test' as TableName from test.TB_Test where 1=1;”报错
    “[SQL] select * ,'TB_Test' as TableName from test.TB_Test where 1=1;
    [Err] 1146 - Table 'test.tb_test' doesn't exist”,所以我看了下第一句,我想是不是说在information_schema.TABLES表中搜索TABLE_NAME列的值如果TABLE_NAME='TB_Member'与TABLE_SCHEMA='member'为真就返回?
    我SQL是在太差了,不过我想说的是搜索有这个数值的表,而不是在一个数据库中搜索一个表名。可能我说的不太清除。
      

  6.   

    你说第一个没效果,那肯定啦,你要把表名改成你自己所需的。
    其次,你说第二个会报错,test数据库、TB_Test表你都没有你能运行?最后:
    其实你自己需求都不太清楚,我就说怎么会有你所说的这种要求。。
    而且你最后所说的“搜索有这个数值的表,而不是在一个数据库中搜索一个表名”
    这并不是SQL差不差的问题,我想说的是,你对需求还没说清楚!可能是我理解能力有问题了!
      

  7.   

    步骤:
    1、获取mysql中的系统表【TABLES】,某个数据库中的所有表名,根据该表名关联查询系统表中的【COLUMNS】,拿到所有表中的字段
    2、然后循环查询该表中,该字段的值是否等于你所要查的值。
    3、如果相等记录该表名及字段名,可以把该记录存放在临时表中。
    4、循环结束、查询该临时表,就是你所想要的结果。
    5、删除临时表。
      

  8.   


    谢谢,不过我对sql语言不熟悉,能否给出例句?或者一步一步怎么写的步奏。不胜感谢
      

  9.   

    看看MYSL的HELP
    打开游标(系统TABLES、COLUMNS)->字符串累加生成SQL语句的方法,判断COLUMNS中有无满足条件的记录
    自己动手做一下吧,有问题再问
      

  10.   


    别生气,来论坛上是为了交流而不是为了生气的。我是一点也不会mysql所以悉心请教,我想到了你说的这个问题,所以我的问题就是一个最大的,不会在发生变化的问题。我也不会在问这个问题的衍生问题。我只要是做项目的,但是眼下项目的确遇到了这个难点。
      

  11.   

    现在实现了,将数据库导出sql文件后用txt打开就可以达到全文搜索了,但是由于要经常用到这个搜索,因为还是希望能有更简便的方法。