2013-10-24 46 views
6

Mediawiki在數據庫'文本'中包含一個包含頁面內容的表格。它被保存爲[BLOB]文件。 我想運行查詢來搜索網站上的所有文本,以查看哪些頁面包含特定的「字符串」。 如何運行查詢來搜索[blob]文件?如何運行查詢以在blob文件中查找字符串?

+0

如果我沒有記錯的話,MediaWiki可以壓縮'text'表的內容。你確定那不是你的情況嗎? – svick

+0

它在文檔中說,'old_flags'列可以包含一個gzip文件,但它也是一個blob文件,當我下載它時,我看不到gzip文件。我在我的維基上有大量內容,我想通過所有內容進行搜索,但無法下載並解壓縮每個頁面。任何想法如何做到這一點? – LTech

回答

6

Mediawiki標記文本存儲在old_text字段中,該字段是中文類型。您可以像查詢任何其他基於文本的字段一樣來查詢它。 MySQL會將您的字符串轉換爲查詢的二進制文件。請注意,這是一個區分大小寫的搜索!

select old_id from text where old_text like "%string%"; 

如果你需要不區分大小寫,那麼你需要用區分大小寫排序的列應用適當的character set

SELECT old_id from text where CONVERT(old_text USING latin1) like '%STRing%'; 

注意,如果你的表是不小的這些查詢將需要很長時間。