Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 从Wikipedia获取给定页面标题的类别列表的SQL查询_Mysql_Mediawiki_Categories - Fatal编程技术网

Mysql 从Wikipedia获取给定页面标题的类别列表的SQL查询

Mysql 从Wikipedia获取给定页面标题的类别列表的SQL查询,mysql,mediawiki,categories,Mysql,Mediawiki,Categories,给定一个维基百科页面标题,我想获取它的类别。然而,我似乎找不到有效的方法 以下是页面表: 这是categorylinks表 其中categorylinks.cl_from=page.page_id…但是,在我的项目中,我将只有一个可能的页面标题,而不是页面id。而且页面标题似乎不是唯一的 有没有更好的办法 谢谢。好的,页面标题实际上是独一无二的。它由MediaWiki logics提供:您是否尝试创建两个标题相同的页面?两个标题相同的页面的URL看起来如何 因此,您只需查询两个表,这两个表将

给定一个维基百科页面标题,我想获取它的类别。然而,我似乎找不到有效的方法

以下是页面表:

这是categorylinks表

其中categorylinks.cl_from=page.page_id…但是,在我的项目中,我将只有一个可能的页面标题,而不是页面id。而且页面标题似乎不是唯一的

有没有更好的办法


谢谢。

好的,页面标题实际上是独一无二的。它由MediaWiki logics提供:您是否尝试创建两个标题相同的页面?两个标题相同的页面的URL看起来如何


因此,您只需查询两个表,这两个表将按标题名从中获取页面id,并在中使用页面id来获取类别列表。

页面标题在每个命名空间中都是唯一的

要在默认命名空间中搜索,请在命名空间0中搜索。以下是您可能要使用的查询:

SELECT `categorylinks`.`cl_to`
FROM `page`
JOIN `categorylinks` ON `categorylinks`.`cl_from` = `page`.`page_id`
WHERE `page`.`page_namespace` = 0 AND `page`.`page_title` = 'Page_name_here'

你说的是MediaWiki(不是维基百科)吗?如果是的话,请更正标签和标题。我指的是那些维基百科表。是的,这是我最初的想法,但如果你查看页面表信息,页面标题不会列为“唯一”或任何类型的键。除非这不重要?我想,你可以依靠页面标题的独特性。我不知道任何有效的方法来创建两个标题相同的页面。我测试了它,页面标题在表中不被视为唯一键。