我正在尝试为类别找到相应的文本记录。
例如,如果我有一个“categorylinks”记录的ID 5,我如何找到哪个文本进入该类别?
答案 0 :(得分: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
和page_namespace
= 14(类别命名空间)在页面表中查找。获得正确的页面后,该行的page_latest
字段等于修订表中的rev_id
。这为您提供了类别页面的最新修订版。修订表有一个rev_text_id
字段,等于文本表中的old_id
字段。文本表中的old_text
是您的文字。
任何时候你想要一个页面的文本它基本上是这样的。查找页面数据库记录。然后:page.page_latest = revision.rev_id and revision.rev_text_id = text.old_id
。