我试图弄清楚如何在数据库中找到所有出现的url.我想搜索所有表格和所有字段.但我不知道从哪里开始,或者甚至可能.
一个简单的解决方案是做这样的事情:
mysqldump -u myuser --no-create-info --extended-insert=FALSE databasename | grep -i ""
然后你可以在myfile.sql上找到你想要的URL.
在phpMyAdmin中,可以使用"搜索"功能:
选择特定数据库而不是表.
点击"搜索"标签
输入您想要的搜索词
选择要搜索的表
phpMyAdmin屏幕截图:
MySQL Workbench中也提供了"搜索"功能:
数据库菜单>搜索表数据
选择要搜索的数据库和表(它将仅在选定的表中搜索)
在搜索中,您可以使用wildChars.
MySQL Workbench屏幕截图:
我知道的旧帖子,但对于其他通过Google发现这个的帖子,如果你安装了phpmyadmin,它有一个全局搜索功能.
使用MySQL Workbench,您可以从"数据库" - >"搜索表数据"菜单选项中搜索字符串.
指定LIKE%URL_TO_SEARCH%,并在左侧选择要搜索的所有表.您可以使用"Cntrl + A"选择左侧的整个树,然后取消选择您不关心的对象.
蛮力方法
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%'
等等
您可以通过使用HeidiSQL而不生成Db转储来实现此目的
步骤:
1)从GUI的左侧面板中选择您需要搜索的数据库.
2)导出>导出数据库为SQL
3)在Table Tools窗口中,选择" FIND TEXT "选项卡.
4)提供要搜索的字符串,然后单击" 查找 ".
5)它将列出包含我们字符串的所有表.
6)选择具有较高相关性%的行.
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); ?>
希望它可以帮助那些在未来遇到这个问题的人:)
SQLyog是基于GUI的解决方案,用于解决跨所有列,表和数据库的数据搜索问题.可以自定义搜索,将其限制为字段,表和数据库.
在其Data Search
功能中,人们可以像使用Google一样搜索字符串.