如果您不确定哪个表/记录/字段实际发生了哪个表/记录/字段,那么有没有办法在MySQL数据库的所有表中搜索特定的子字符串?
答案 0 :(得分:2)
转储到文本文件并搜索将是最快的&最简单的手段。
另一种方法是你必须使用动态SQL(MySQL的Prepared Statements),因为你不能迭代一个表列表来在标准SQL中查询。此外,并非所有列都基于VARCHAR /字符串 - 因此需要在尝试LIKE %your_substring%
/ etc之前将其过滤掉。
答案 1 :(得分:1)
一些想法:
您可以使用某些外部全文搜索功能,例如http://www.sphinxsearch.com/
搜索二进制日志。如果使用基于语句的日志记录,那应该非常简单。
仅仅搜索数据文件本身就是令人讨厌和肮脏的,但这可能在很大程度上起作用。 YMMV极端程度!
你可能想出了识别所有表中所有文本列的算法,然后,正如OMG指出的那样,为这些列写一些查询。
我可能会搜索二进制日志(当然,假设你有它们)。当我研究一些数据库怪异时,我在我们的日志中搜索一些可能对环境来说唯一的子字符串,然后我可以查看有问题的确切语句。