Mysql 从页面标题到旧文本内容的映射

Mysql 从页面标题到旧文本内容的映射,mysql,mediawiki,Mysql,Mediawiki,我尝试使用SQL查询访问WikiMedia数据库,以获取文章页面的内容。(“文本”表中的“旧文本”)通过搜索其页面标题(从“页面”表中)。 不幸的是,我看不到页面id(来自页面表)和旧id(来自“文本”表)之间的映射。 那么,如何使用给定的页面标题从带有sql查询的文章中获取文本呢?说: 旧id 修订表中的revision.rev_text_id是此列的键 因此,要获取某个修订的文本,您需要知道所需修订的id。 如果只需要页面的最新版本,其id将存储在中。为了补充svick的答案,下面是一个实际

我尝试使用SQL查询访问WikiMedia数据库,以获取文章页面的内容。
(“文本”表中的“旧文本”)
通过搜索其页面标题
(从“页面”表中)
。 不幸的是,我看不到页面id
(来自页面表)和旧id(来自“文本”表)之间的映射。

那么,如何使用给定的页面标题从带有sql查询的文章中获取文本呢?

说:

旧id

修订表中的revision.rev_text_id是此列的键

因此,要获取某个修订的文本,您需要知道所需修订的id。
如果只需要页面的最新版本,其id将存储在中。

为了补充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字段是否包含您期望的值。)

从text,page,其中page.page_latest=revision.rev_id和revision.rev_text_id=text.old_id和page_title=“”和page_namespace=可能应该是“您可能需要旧_标志字段”对吗?在默认安装中,旧的_文本是未压缩的,并且包含修订版的实际文本,因此您不需要旧的_标志。只有当你在做一些异国情调的事情,比如压缩旧版本或者使用共享数据库时,你才需要用旧的_标志做一些事情。。。