2010-05-17 69 views
0

缺少SQL將我的整個數據庫轉儲到文本並搜索,有沒有辦法在MySQL數據庫的所有表中搜索特定的子字符串,如果您不確定哪個表/記錄/字段實際發生的子字符串?在特定子字符串中搜索所有表

回答

1

一些想法:

你可以使用一些外部的全文檢索功能,如http://www.sphinxsearch.com/

搜索您的二進制日誌。如果你使用基於語句的日誌記錄,那應該是非常簡單的。

僅僅搜索數據文件本身就是討厭和骯髒的,但這可能大部分都是有效的。 YMMV達到極限!

您可能會想出算法來標識所有表中的所有文本列,然後如OMG指出的那樣爲這些列編寫一些查詢。

我可能會搜索二進制日誌(假設你有他們,當然)。當我正在研究某些數據庫的怪異情況時,我在日誌中搜索了一些可能對於環境來說是唯一的子字符串,然後我可以將所討論的確切語句歸入其中。

2

轉儲到文本文件和搜索將是最快速的&最簡單的方法。

另一種方法是,您必須使用動態SQL(MySQL的Prepared Statements),因爲您無法迭代要在標準SQL中進行查詢的表列表。另外,並不是所有的列都是基於VARCHAR /字符串的 - 所以這些需要在嘗試LIKE %your_substring%/etc之前被過濾掉。