Mediawiki

提供:onayami
2024年6月16日 (日) 09:00時点におけるUser (トーク | 投稿記録)による版

SELECT * FROM mwtext WHERE old_text LIKE '%文字列%';


MediaWiki の記事データは主に以下のテーブルに格納されます:

1. **`page` テーブル**:

   - 各ページのメタデータを格納します。このテーブルにはページのタイトル、名前空間、ページIDなどの情報が含まれます。
   - 主なカラム:
     - `page_id`: ページの一意のID
     - `page_namespace`: 名前空間
     - `page_title`: ページのタイトル

2. **`revision` テーブル**:

   - 各ページのリビジョン(変更履歴)を格納します。ここには各リビジョンの作成者、タイムスタンプ、コメントなどの情報が含まれます。
   - 主なカラム:
     - `rev_id`: リビジョンの一意のID
     - `rev_page`: 関連するページのID(`page_id`と対応)
     - `rev_text_id`: テキストテーブルのID(`text`テーブルの`old_id`と対応)

3. **`text` テーブル**:

   - 各リビジョンのテキストデータを格納します。実際のウィキテキストがこのテーブルに保存されます。
   - 主なカラム:
     - `old_id`: テキストの一意のID
     - `old_text`: ウィキテキスト
     - `old_flags`: テキストの圧縮形式などのフラグ

記事が作成または編集されると、`page` テーブルに新しいエントリが追加され、`revision` テーブルにそのリビジョンの情報が追加され、`text` テーブルにそのリビジョンのテキストが保存されます。

例として、特定の記事の最新バージョンを取得するには以下のようなクエリを使用します:

```sql SELECT page.page_title, text.old_text FROM page JOIN revision ON revision.rev_page = page.page_id JOIN text ON text.old_id = revision.rev_text_id WHERE page.page_title = 'Example_Page_Title' ORDER BY revision.rev_id DESC LIMIT 1; ```

このクエリでは、ページタイトルが `Example_Page_Title` の最新のリビジョンのテキストを取得します。