当前位置:  开发笔记 > 编程语言 > 正文

在mysql数据库中搜索所有出现的字符串

如何解决《在mysql数据库中搜索所有出现的字符串》经验,为你挑选了8个好方法。

我试图弄清楚如何在数据库中找到所有出现的url.我想搜索所有表格和所有字段.但我不知道从哪里开始,或者甚至可能.



1> Paolo Bergan..:

一个简单的解决方案是做这样的事情:

mysqldump -u myuser --no-create-info --extended-insert=FALSE databasename | grep -i ""

然后你可以在myfile.sql上找到你想要的URL.


你甚至不需要创建一个文件:mysqldump -u myuser | grep http://stackoverflow.com
@SchlaWeiner只是转储数据; 你不知道行模式或表.
http://www.adminer.org/在查找所有表中的文本(给定指定的数据库)方面做得非常好.
如果你赶时间,这是有道理的...

2> murtaza.webd..:

phpMyAdmin中,可以使用"搜索"功能:

    选择特定数据库而不是表.

    点击"搜索"标签

    输入您想要的搜索词

    选择要搜索的表

phpMyAdmin屏幕截图:

phpMyAdmin数据库搜索选项卡

MySQL Workbench中也提供了"搜索"功能:

    数据库菜单>搜索表数据

    选择要搜索的数据库和表(它将仅在选定的表中搜索)

    在搜索中,您可以使用wildChars.

MySQL Workbench屏幕截图:

MySQL Workbench数据库搜索



3> 小智..:

我知道的旧帖子,但对于其他通过Google发现这个的帖子,如果你安装了phpmyadmin,它有一个全局搜索功能.


您的帖子不应低于广告.
我更喜欢HeidiSQL和phpMyAdmin.价格相同,使用起来更方便,功能更强大.也更快.

4> Gurpreet..:

使用MySQL Workbench,您可以从"数据库" - >"搜索表数据"菜单选项中搜索字符串.

指定LIKE%URL_TO_SEARCH%,并在左侧选择要搜索的所有表.您可以使用"Cntrl + A"选择左侧的整个树,然后取消选择您不关心的对象.

在此输入图像描述



5> MikeW..:

蛮力方法

declare @url varchar(255)

set @url = 'stackoverflow.com'

select 'select * from ' + rtrim(tbl.name) + ' where ' + 
          rtrim(col.name) + ' like %' + rtrim(@url) + '%'
from sysobjects tbl
inner join syscolumns col on tbl.id = col.id 
and col.xtype in (167, 175, 231, 239) -- (n)char and (n)varchar, there may be others to include
and col.length > 30 -- arbitrary min length into which you might store a URL
where tbl.type = 'U'    -- user defined table

这将创建一个可以在数据库上执行的脚本.

select * from table1 where col1 like '%stackoverflow.com%'
select * from table1 where col2 like '%stackoverflow.com%'
select * from table2 where col3 like '%stackoverflow.com%'

等等


对于这个纯粹酷酷的hackish感觉+1

6> Prasanth K C..:

您可以通过使用HeidiSQL而不生成Db转储来实现此目的

步骤:

1)从GUI的左侧面板中选择您需要搜索的数据库.

2)导出>导出数据库为SQL

3)在Table Tools窗口中,选择" FIND TEXT "选项卡.

4)提供要搜索的字符串,然后单击" 查找 ".

5)它将列出包含我们字符串的所有表.

6)选择具有较高相关性%的行.

7)点击" 查看结果 "

在此输入图像描述



7> 小智..:

当我们在Wordpress网站上更改域名时,我一直在寻找这个.没有一些编程就无法完成,所以这就是我所做的.

 0) {
      while ($field = mysql_fetch_assoc($fields_result)) {
        if (stripos($field['Type'], "VARCHAR") !== false || stripos($field['Type'], "TEXT") !== false) {
          echo "  ".$field['Field']."\n";
          $sql = "UPDATE ".$table[0]." SET ".$field['Field']." = replace(".$field['Field'].", '$string_to_replace', '$new_string')";
          mysql_query($sql);
        }
      }
      echo "\n";
    }
  }

  mysql_free_result($tables_result);  
?>

希望它可以帮助那些在未来遇到这个问题的人:)



8> jsist..:

SQLyog是基于GUI的解决方案,用于解决跨所有列,表和数据库的数据搜索问题.可以自定义搜索,将其限制为字段,表和数据库.

在其Data Search功能中,人们可以像使用Google一样搜索字符串.

SQLyog Datasearch截图

推荐阅读
吻过彩虹的脸_378
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有