我试图弄清楚如何在数据库中定位一个url的所有事件。我想搜索所有表和所有字段。但我不知道从哪里开始,甚至不知道是否有可能。


当前回答

您可以通过使用HeidiSQL而不生成Db转储来实现这一点

步骤:

1)在GUI左侧面板中选择需要搜索的数据库。

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

3)在表格工具窗口中选择“查找文本”选项卡。

4)提供你的字符串进行搜索,然后点击“FIND”。

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

6)选择相关度%较高的行。

7)点击“查看结果”

其他回答

这不是一个优雅的解决方案,但可以通过嵌套循环结构来实现

// select tables from database and store in an array

// loop through the array
foreach table in database
{
    // select columns in the table and store in an array

    // loop through the array
    foreach column in table
    {
        // select * from table where column = url
    }
}

您可以通过在构建列数组时检查哪些列包含字符串,以及将每个表的所有列合并在一个用逗号分隔的WHERE子句中来加快此过程。

老帖子我知道,但是对于其他人来说,通过谷歌找到这个,如果你安装了phpmyadmin,它有一个全局搜索功能。

这里有两个简单的代码。首先执行mysqldump:

mysqldump -uUSERNAME -p DATABASE_NAME > database-dump.sql

然后grep sqldump文件:

grep -i "Search string" database-dump.sql

也可以找到/替换并重新导入到数据库中。

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

在它的数据搜索功能中,用户可以像使用谷歌一样搜索字符串。

本视频的前30秒展示了如何使用Phpmyadmin的全局搜索功能 这很有效。它将在每个表中搜索字符串。

http://www.vodahost.com/vodatalk/phpmyadmin-setup/62422-search-database-phpmyadmin.html