4

SQL クエリを使用して WikiMedia データベースにアクセスし、記事ページのコンテンツを取得しようとしています。('old_text', from the 'text' table)その page_title を検索して(from the 'page' table)。残念ながら、 page_id 間のマッピングはありません(from the page table) an the old_id (from the 'text' table)
では、特定のページ タイトルを使用して、SQL クエリを使用して記事からテキストを取得するにはどうすればよいでしょうか。

4

2 に答える 2

1

textテーブルのドキュメントには次のように記載されています。

old_id

リビジョン テーブルの rev_text_id は、この列のキーです。

したがって、特定のリビジョンのテキストを取得するには、必要なリビジョンの ID を知る必要があります。ページの最新版だけが必要な場合、その ID は に保存されpage_latestます。

于 2012-09-12T13:30:54.010 に答える
1

svick の回答を補完するために、実際のサンプル SQL クエリを次に示します。

SELECT old_text, old_flags
FROM page
  JOIN revision ON rev_id = page_latest
  JOIN text ON old_id = rev_text_id
WHERE page_title = 'Main_Page' AND page_namespace = 0;

old_flags(の内容を理解するには、フィールドも必要になることに注意してくださいold_text。少なくとも、 flags フィールドに期待する値が含まれていることを確認する必要があります。)

于 2012-09-12T14:57:17.780 に答える