How to run a query to find a string in blob files?

后端 未结 2 808
故里飘歌
故里飘歌 2020-12-18 01:30

Mediawiki has a table in the database \'text\' which contains the page content. It is saved as a [BLOB] file. I would like to run a query to search through all the text on

相关标签:
2条回答
  • 2020-12-18 01:42

    The Mediawiki markup text is stored in the old_text field, which is a mediumblob type. You can query it like any other text-based field. MySQL will cast your string into binary for the query. Note that this is a case-sensitive search!

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

    If you need case-insensitivity then you need to apply an appropriate character set with a case-insensitive collation to the column:

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

    Be aware that if your table isn't small these queries will take a long time.

    0 讨论(0)
  • 2020-12-18 01:46

    As per the mediawiki documentation text table stores only the text for the revision. Hence to access the complete text, all revisions corresponding to a page need to be processed. It is better to use an API call to mediawiki search engine and process the results than search using SQL query.

    0 讨论(0)
提交回复
热议问题