mysql - 在两个维基百科中选择更大的文章

标签 mysql mediawiki wikipedia mediawiki-api

使用 Wmflabs 中的“Quarry”(https://quarry.wmflabs.org/)。

据我了解,这是 MySQL。

如何选择德语 wiki 中比 enwiki 中的文章更大的所有文章?

这是我使用的代码。我需要 de_len,但我不知道如何获取它。

USE enwiki_p;

SELECT 
        page_title en_title,
        page_len en_len,
        ll.ll_title as de_title
FROM page
JOIN langlinks ll
    ON ll_from = page_id
WHERE page_namespace = 0
GROUP BY page_id  
HAVING max(CASE ll_lang  WHEN 'de' THEN 1 ELSE 0 END) = 0  
LIMIT 10

最佳答案

您需要使用两个数据库中的至少三个表来从两个 wiki 中获取相应文章(页面)的正确页面大小,以及相关的跨语言链接以进行良好的比较。 解决方案是这样的:

SELECT 
       enp.page_title as en_title,
       enp.page_len as en_len,
       dep.page_title as de_title,
       dep.page_len as de_len        
FROM enwiki_p.page enp
JOIN enwiki_p.langlinks enll
  ON enll.ll_from = enp.page_id and ll_lang="de"
JOIN dewiki_p.page dep
  ON enll.ll_title = REPLACE(dep.page_title, '_', ' ')
WHERE enp.page_namespace = 0 and enp.page_is_redirect = 0 
  AND dep.page_namespace = 0 and dep.page_is_redirect = 0
GROUP BY enp.page_id  
HAVING dep.page_len > enp.page_len
ORDER BY dep.page_len DESC  
LIMIT 100

关于mysql - 在两个维基百科中选择更大的文章,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44167755/

相关文章:

python-3.x - 有选择地使用 Python 抓取维基百科表格

MySQL选择昨天的日期

同一天的 MySQL 求和值

MySQL 添加外键到现有表 PHP

MySQL 在 LEFT JOIN 之前计算字段值

mediawiki - 自动生成少于四个标题的文章目录

css - 修复 MediaWiki 特殊页面的样式布局

mysql - 将 Mediawiki 部署到 Azure : no SSL Connection

php - 如何只获取维基百科文章的已解析信息框?

用于从维基百科中的 ParserFunctions 生成值的 Python 工具/库