代码之家  ›  专栏  ›  技术社区  ›  Aaron Fi

如何通过MySQL数据库进行grep?

  •  20
  • Aaron Fi  · 技术社区  · 16 年前

    为MySQL数据库寻找一个漂亮的助手函数/方法,用于在所有定义的表、列、存储过程等中进行grepping。

    我有类似于SQL Server的东西。

    5 回复  |  直到 6 年前
        1
  •  9
  •   Sarel Botha    16 年前

    在信息模式数据库中:

    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

    好吧,它并不能完全回答你的问题,但你应该能够把它组合起来,你想从这里得到什么。

        2
  •  32
  •   ykaganovich Mike Samuel    13 年前

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

        3
  •  0
  •   NexusRex    13 年前

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

        4
  •  0
  •   Craig    10 年前

    公共资源grep(crgrep)搜索表/列名称和数据匹配,并支持mysql。

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

    还可以搜索其他难以搜索的资源,如隐藏在档案中的内容。我把crgrep开发成一个开源工具。

        5
  •  0
  •   Dominik Zawadzki    6 年前

    或者简单地说,mysql workbench->database->search table data…