寻找一个漂亮的帮助函数/方法来遍历 MySql 数据库的所有定义的表、列、存储过程等。
我对 SQL Server 有类似的东西。
mysqldump --compact --skip-extended-insert -u root -proot mydb | grep "interesting string"
在 INFORMATION_SCHEMA 数据库中:
select * from columns WHERE TABLE_NAME LIKE '%tablename%' AND COLUMN_NAME LIKE '%columnname%'
更多信息在这里: http ://dev.mysql.com/doc/refman/5.0/en/information-schema.html
好的,它并没有完全回答你的问题,但你应该能够从这里按照你想要的方式把它放在一起。
或者简单,MySQL Workbench -> 数据库 -> 搜索表数据...
这里有一个 MySQL 的存储过程(http://forge.mysql.com/tools/tool.php?id=232),它将创建一个表来存储输出,然后遍历 information_schema 数据库的 COLUMNS 表以获取所有数据库的表和列名。接下来对 database.table 执行 count() 查询,在 where 条件下使用适当的搜索字符串对每一列进行查询。如果 count() > 0,则该特定列具有搜索词,因此它将将该三元组(数据库名称、表名称、列名称)插入到表中。最后从表中选择 * 以查看具有搜索词的相应数据库表和列名。
Common Resource Grep (crgrep) 搜索表/列名和数据匹配并支持 MySQL。
http://sourceforge.net/projects/crgrep/
还搜索其他难以搜索的资源,例如隐藏在档案中的内容。我将 crgrep 开发为开源工具。