如何运行查询以查找blob文件中的字符串?

时间:2013-10-24 10:49:52

标签: mysql sql mediawiki

Mediawiki在数据库'text'中有一个包含页面内容的表。它保存为[BLOB]文件。 我想运行一个查询来搜索网站上的所有文本,以查看哪些页面包含某个“字符串”。 如何运行查询来搜索[blob]文件?

2 个答案:

答案 0 :(得分:9)

Mediawiki标记文本存储在old_text字段中,该字段是 mediumblob 类型。您可以像任何其他基于文本的字段一样查询它。 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%';

请注意,如果您的表格不小,这些查询会花费很长时间。

答案 1 :(得分:0)

根据mediawiki documentation文本表,仅存储修订的文本。因此,要访问完整文本,需要处理与页面对应的所有修订。最好使用对mediawiki search engine的API调用并处理结果,而不是使用SQL查询进行搜索。