1

カテゴリに対応するテキストレコードを見つけようとしています。

たとえば、「categorylinks」レコードのID 5を持っている場合、どのテキストがそのカテゴリに入るのかをどのように見つけることができますか?

4

1 に答える 1

1

編集:あなたがカテゴリーページのテキストを求めているのか、カテゴリー内のページのテキストを求めているのかはまだわかりませんので、ここに両方があります:

カテゴリページのテキスト:

select old_text from text, revision, page, categorylinks
where rev_text_id = old_id
    and rev_id = page_latest
    and page_namespace = 14
    and page_title = cl_to
    and cl_from = <cl_from entry in categorylinks table>

カテゴリ内のページのテキスト:

select old_text from text, revision, page, categorylinks
where rev_text_id = old_id
    and rev_id = page_latest
    and page_id = cl_from
    and cl_to = <cl_to entry in categorylinks table>

詳細説明:

基本的に、categorylinksでは、cl_titleはカテゴリページのタイトルです。page_titleしたがって、and page_namespace= 14(カテゴリ名前空間)を使用してページテーブルでそれを調べることができます。正しいページを取得すると、その行のフィールドはリビジョンテーブルのpage_latestと等しくなります。rev_idこれにより、カテゴリページの最新のリビジョンが提供されます。リビジョンテーブルには、テキストテーブルrev_text_idのフィールドと同じフィールドがあります。テキストテーブルにはあなたのテキストがあります。old_idold_text

ページのテキストが必要なときはいつでも、基本的にこのように機能します。ページデータベースレコードを検索します。次に:page.page_latest = revision.rev_id and revision.rev_text_id = text.old_id

参照:MediaWikiデータベーススキーマ

于 2012-08-20T16:20:29.400 に答える