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

修订表中的 revision.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 回答