MediaWikiには、ページコンテンツを含むデータベース 'text'のテーブルがあります。 [BLOB]ファイルとして保存されます。 サイト上のすべてのテキストを検索して、特定の「文字列」を含むページを確認するクエリを実行したいと思います。 [blob]ファイルを検索するクエリを実行するにはどうすればよいですか?
ベストアンサー
Mediawikiのマークアップテキストは、old_text
フィールドに格納されます。これはmediumblob型です。他のテキストベースのフィールドのように照会できます。 MySQLは文字列をバイナリにキャストしてクエリを実行します。これはケース依存の検索であることに注意してください!
select old_id from text where old_text like "%string%";
case-indinception が必要な場合は、適切な 文字セット をカラムに適用する必要があります。
SELECT old_id from text where CONVERT(old_text USING latin1) like '%STRing%';
テーブルが小さくない場合は、これらのクエリに時間がかかることに注意してください。