2009-01-16 48 views
16

寻找一个漂亮的帮助函数/方法,用于通过MySql数据库的所有定义的表,列,存储过程等进行查询。我如何通过mysql数据库grep?

我对SQL Server有类似的东西。

+0

Shazam! http://code.google.com/p/anywhereindb/ – doublejosh 2011-09-27 21:49:33

回答

9

在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

好吧,它并不能完全解答您的问题,但你应该能够把它在一起,你怎么在这里希望。

0

MySQL中有一个存储过程(http://forge.mysql.com/tools/tool.php?id=232),它将创建一个用于存储输出的表,然后循环访问information_schema数据库的COLUMNS表以获取所有数据库的表和列名。接下来,在where条件下使用适当的搜索字符串对每个列的database.table执行count()查询。如果count()> 0,那么该特定列具有搜索项,因此它会将该三元组(数据库名称,表名称,列名称)插入到表中。上次从表中选择*查看具有搜索项的相应数据库表和列名称。

26

mysqldump --compact --skip-extended-insert -u root -proot mydb | grep "interesting string"

+0

compact和skip-extended-insert选项非常有价值。谢谢。 – CodeBlue 2013-09-25 22:28:43

+0

Thankyou - 这是我真正想要的那个 – Sparky 2017-06-01 13:58:31

0

公共资源的grep(crgrep)搜索表/列名和数据匹配和支持MySQL。

http://sourceforge.net/projects/crgrep/

也搜索其他难以寻找资源,如埋在档案内容。我开发了crgrep作为开源工具。