Benutzer Diskussion:SirJective/Wartungslisten/Ähnliche Titel
Zur Navigation springen
Zur Suche springen
Die Abfrage
[Quelltext bearbeiten]Die verwendete Abfrage benötigt die page
-Tabelle und legt Hilfstabellen an.
DROP TABLE IF EXISTS `page_titles_up`; CREATE TABLE `page_titles_up` ( `page_id` int(8) unsigned NOT NULL, `ns` tinyint(2) unsigned NOT NULL, `up_title` varchar(255) binary NOT NULL, page_is_redirect tinyint(2) unsigned NOT NULL, PRIMARY KEY (`page_id`), KEY `ns_ti` (`ns`,`up_title`) ) TYPE=MyISAM; INSERT INTO page_titles_up SELECT page_id, page_namespace, upper(page_title), page_is_redirect FROM page; DROP TABLE IF EXISTS `page_titles_up_m`; CREATE TABLE `page_titles_up_m` ( `ns` tinyint(2) unsigned NOT NULL default '0', `up_title` varchar(255) binary NOT NULL default '', `count` smallint(4) unsigned NOT NULL default '0', nr_of_redir tinyint(2) unsigned not null, PRIMARY KEY (`ns`,`up_title`) ) TYPE=MyISAM; insert into page_titles_up_m SELECT ns, up_title, count( * ) AS c, sum(page_is_redirect) FROM page_titles_up GROUP BY ns, up_title HAVING c > 1 ORDER BY ns, up_title; drop table if exists page_titles_up_res; create table page_titles_up_res( page_id int(8) unsigned not null, primary key (page_id) ); insert into page_titles_up_res select cu.page_id FROM page_titles_up_m AS cum STRAIGHT_JOIN page_titles_up AS cu WHERE cum.nr_of_redir+2<=cum.count AND cu.ns = cum.ns AND cu.up_title = cum.up_title; SELECT concat('*[[', ELT(page.page_namespace+1, '', 'Diskussion:', 'Benutzer:', 'Benutzer_Diskussion:', 'Wikipedia:', 'Wikipedia_Diskussion:', 'Bild:', 'Bild_Diskussion:', 'MediaWiki:', 'MediaWiki_Diskussion:', 'Vorlage:', 'Vorlage_Diskussion:', 'Hilfe:', 'Hilfe_Diskussion:', 'Kategorie:', 'Kategorie_Diskussion:' ), page.page_title, ']]', if(page.page_is_redirect,' (r)','') ) from page_titles_up_res as cr straight_join page where cr.page_id = page.page_id and page_namespace in (0,1,4,5,8,9,10,11,12,13,14,15) and length(page.page_title) > 3 order by upper(page.page_title), page.page_title, page.page_namespace;
Beim aktuellen Durchlauf (19. Dezember 2005) habe ich die auszuschließenden Seiten manuell aus der Ergebnisliste entfernt. Geschickter ist es, die Ausschlussliste in eine separate Tabelle zu laden und per SQL aus dem Ergebnis zu entfernen. --SirJective 21:06, 19. Dez 2005 (CET)