Wikipédia:SQL-futtatási kérések
Az adatbázis-lekérdezésekhez semmilyen különleges jogosultság nem kell, és könnyen elsajátíthatóak. Ha gyakran szeretnéd használni őket, érdemesebb megtanulnod, hogyan teheted meg magad. Ehhez részletes útmutatót találsz itt: Wikipédia:Adatbázis-lekérdezések. Néhány gyakran használt lekérdezést készen megtalálsz a Wikipédia:SQL-lekérdezések lapon.
| Súgó | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Névterek | ||||||||||||||||||
|
||||||||||||||||||
Tartalomjegyzék |
[szerkesztés] Kérések
Szeretnék rendelni:
SELECT cat_pages FROM category WHERE cat_title='Magyar_labdarúgók'; SELECT COUNT(*) FROM categorylinks WHERE cl_to='Magyar_labdarúgók';
Köszönöm, --Bean49 vita 2010. január 24., 14:07 (CET)
- Elnézést, hogy csak most reagálok, de (még a kérésed előtt) elindítottam az árva lapok lekérdezést, váratlanul két és fél napra feladatot is adva a számítógépnek, és csak most értem ide. Szóval valami nem jó a lekérdezéssel, mert az elsőre nincsen találat, a másodikra pedig 0-t ad. Lehet ez, vagy a lekérdezés nem jó? Samat üzenetrögzítő 2010. január 27., 17:50 (CET)
Valahogy tudd meg, kérlek, hogy mit kell a where-be írni, hogy jó legyen, mert jó volna tudni ezt a két értéket. Esetleg Magyar_labdar%C3%BAg%C3%B3k. --Bean49 vita 2010. január 27., 20:07 (CET)
Hunyadym javaslata volt a nyerő az alulvonással. A megoldás:
- az elsőre: 1038;
- a másodikra: 1023.
Samat üzenetrögzítő 2010. január 28., 03:30 (CET)
Köszönöm! --Bean49 vita 2010. január 28., 12:38 (CET)
[szerkesztés] Olyan fájl névterű lapok, ami mögött nincsen fájl
Olyan fájl névterű lapok lesznek (elvileg) ennek a lekérdezésnek az eredményei, amilyen néven nem létezik fájl. Pl. ilyenek a commonsba feltöltött kiemelt képek. (Ha 1000 fölötti rekord lesz, akkor nyugodtan leállítható a lekérdezés, akkor én bénáztam el.)
SELECT page_title AS nev FROM page WHERE page_namespace = 6 EXCEPT SELECT img_name AS nev FROM image ;
– Hunyadym
Vita 2010. január 28., 09:48 (CET)
MySQL-ben nincs EXCEPT. A standard megoldás:
SELECT page_title FROM page LEFT JOIN image ON page_title = img_name WHERE page_namespace = 6 AND img_name IS NULL;
– Tgrvita•IRC•WP•PR 2010. január 28., 10:56 (CET)
- Közben én is felraktam magamnak az adatbázist Tgr segítségével, és le is futtattam a lekérdezést. Az eredmény itt van. – Hunyadym
Vita 2010. január 28., 11:42 (CET)
-
- Erről lemaradtam :) Samat üzenetrögzítő 2010. január 28., 14:41 (CET)
- Már csak egyet magyarázzatok el: mi ezekkel a teendő? – Burumbátor Speakers’ Corner 2010. január 28., 12:19 (CET)
- Végigmegyek rajtuk, van, amit törölni kell, van, ami meg rendben van, csak a botom tegnap rárakta a
{{nincs összegzés}}(?) sablont. – Hunyadym
Vita 2010. január 28., 12:36 (CET)
- Végigmegyek rajtuk, van, amit törölni kell, van, ami meg rendben van, csak a botom tegnap rárakta a
-
[szerkesztés] Interwiki nélküli kategóriák
- (műszaki kocsmafalról áthozva)
Lehetséges lenne kilistázni az interwiki nélküli Kategóriákat? Ezen a téren elég nagy a lemaradás, pedig nem bonyolult feladat. Már elkezdtem, de elággé szerteágazó a kategóriafa gráf. Jó lenne látni valami sorrrendet. Megoldható? – B.Zsolt vita 2010. február 10., 00:03 (CET)
Első nekifutásra:
SELECT page_title FROM page LEFT JOIN templatelinks ON tl_from = page_id AND tl_namespace = 10 AND tl_title = 'Kat-redir' LEFT JOIN langlinks ON ll_from = page_id WHERE page_namespace = 14 AND NOT page_title LIKE 'Csonkok_%' AND NOT page_title LIKE 'Figyelmet_igénylő_lapok_%' AND page_is_redirect = 0 AND tl_from IS NULL AND ll_from IS NULL;
– Tgrvita•IRC•WP•PR 2010. február 10., 20:22 (CET)
- És valaki le is tudná ezt futtatni? Jó allapra is vagy TXT-be nekem. Előre is köszi! – B.Zsolt vita 2010. február 11., 17:15 (CET)
- Ez semmilyen eredményt nem ad vissza. A lekérdezésben lehet a hiba valahol. Samat üzenetrögzítő 2010. február 11., 20:32 (CET)
Javítva. Azt is érdemes lenne számbavenni, mely kategóriákat nem szeretnénk látni a listában (van valami szoft redirekt sablon pl). --Tgrvita•IRC•WP•PR 2010. február 11., 23:21 (CET)
Az interwiki nélküli kategóriák listája (három héttel ezelőtti állapot, de nem hiszem, hogy sokat változott volna): Szerkesztő:Samat/Interwiki nélküli kategóriák. Szép kis lista több mint 10 ezer kategóriával. Samat üzenetrögzítő 2010. február 21., 00:40 (CET)
Eléggé durva módszer, de mi lenne ha kilistáznánk azokat a kategóriákat amelyek nem! tartalmazzák az [[en:category: stringet! Ebben már plusszban csak az olyan kategóriák kerülnének, amelyeknem más nyelvű interwikije van, de abból meg nincs sok. – B.Zsolt vita 2010. február 14., 01:00 (CET)
Köszönöm! Majd nézegetem! :) – B.Zsolt vita 2010. február 21., 22:34 (CET)
Hkoala kérdései a lista vitalapjáról:
- van-e értelme kilistázni az átirányított kategórialapokat
- van-e értelme kilistázni a szerkesztői allapok kategóriáit pl. Kategória:Bennó allapjai
- van-e értelme interwikit keresni a cikkértékelési kategóriáknak: mi a haszon abból, ha a kevéssé fontos ókori cikkeknek beírjuk az angol stb. párját
- van-e értelme bevenni a karbantartási kategóriákat pl. csonkok 2008 februárjából, csonkok (mali életrajz), figyelmet igénylő lapok 2003 augusztusából, lektorálandó lapok 2004 augusztusából stb.
- van-e értelme bevenni a különböző helyesírási gondokat jelző kategóriákat pl. rossz arab átírású cikkek
Az átirányítás alatt sima átirányítás értendő (ez sima ügy, csak egy page_is_redirect = 0 kell a feltételekbe) vagy a {{kat-redir}}(?) sablon (ehhez vagy a templatelinks táblát is joinolni kell, vagy keresni a kategória szövegében; valószínűleg mindkettő jelentősen lassítaná a lekérdezést)? A többire kéne valami használható feltétel. --Tgrvita•IRC•WP•PR 2010. február 21., 10:25 (CET)
- 1. a katredir is, azaz a Kategória:Kategóriaátirányítások
- 2. a Kategória:Szerkesztők személyes kategóriái alkategóriái
- 3. a Kategória:Wikipédia-cikkértékelés alkategóriái
- 4. a Kategória:Csonkok, a Kategória:Figyelmet igénylő lapok hónapok szerint alkategóriái
- 5. a Kategória:Rossz átírású cikkek alkategóriái
Ez így használható? – Hkoala
2010. február 21., 11:42 (CET)
Ebbe a lekérdezésbe amúgy még jelentős lassulás is belefér. Nem mértem, de pár perc alatt megvolt. Samat üzenetrögzítő 2010. február 21., 14:30 (CET)
Hkoala kérdéseire:
- szerintem nincs;
- szerintem nincs;
- szerintem van (össze lehet hasonlítani a fontossági és egyéb értékeléseket);
- szerintem nincs;
- szerintem nincs. Bennó
fogadó 2010. február 21., 14:45 (CET)
Fa-alapú lekérdezéseket nagyon nehéz csinálni SQL-ben. Esetleg ha lehet pontosan tudni, hogy hányadik szülőről van szó... --Tgrvita•IRC•WP•PR 2010. február 21., 15:50 (CET)
Igazából az első kérdést lenne lényeges bottal megoldani. A többi kategóriának a címéből is látszik, hogy nem kell neki interwiki, ráadásul egy tömbben vannak a listában, tehát kézzel se nagy munka kitörölni a listából. Az átirányításról viszont csak akkor látod, hogy átirányítás, ha rákattintasz. – Hkoala
2010. február 21., 15:54 (CET)
Cím alapján például nagyon egyszerű szűrni, ha meg tudod fogalmazni, miből ismerhetőek fel. Az átirányítást beleírtam. A cikkértékelő kategóriák interwikizését bottal kéne megoldani. --Tgrvita•IRC•WP•PR 2010. február 21., 16:22 (CET)
- A csonk-kategóriák címe ilyen alakú: "Csonkok (XXX)" vagy "Csonkok 20YY ZZZból" vagy "Csonkok 20YY WWWből"
- Továbbá: "Figyelmet igénylő lapok 20YY ZZZból" vagy "Figyelmet igénylő lapok 20YY WWWből"
– Hkoala
2010. február 21., 19:04 (CET)
Beleírtam. --Tgrvita•IRC•WP•PR 2010. február 21., 20:18 (CET)
Itt van: Szerkesztő:Hunyadym/Interwiki nélküli kategóriák – Hunyadym
Vita 2010. július 2., 21:20 (CEST)
[szerkesztés] WP-névtér
Üdv, majsztrók! Szükségem volna a WP-névtérbeli lapok teljes listájára, redirek és allapok nélkül. Szabad ilyet kapni? Bennó
fogadó 2010. február 22., 18:58 (CET)
SELECT * FROM page WHERE page_namespace = 4 AND page_is_redirect = 0 AND page_title NOT LIKE '%/%';
--Tgrvita•IRC•WP•PR 2010. február 22., 21:57 (CET)
- Szerkesztő:Hunyadym/WP névtérbeli lapok – Hunyadym
Vita 2010. február 28., 17:48 (CET)
- Aztaaaa!!!!! Te vagy az Isten! ;) (560 oldal, wow..) – OrsolyaVirág
HardCandy 2010. február 28., 18:49 (CET)
- Aztaaaa!!!!! Te vagy az Isten! ;) (560 oldal, wow..) – OrsolyaVirág
Friss verzió ugyanott. – Hunyadym
Vita 2010. július 2., 21:22 (CEST)
[szerkesztés] élő személyek
Sziasztok!
Lehetséges lenne kigyűjteni az összes olyan élő személy életrajzát, ami a Kategória:Forrással nem rendelkező lapok, a Kategória:Kevés forrással rendelkező lapok, a Kategória:Rossz forrással rendelkező lapok és a Kategória:Részben rossz forrással rendelkező lapokban vannak? (Lehetőség szerint kategóriák szerint.) Köszönöm. – OrsolyaVirág
HardCandy 2010. április 18., 16:01 (CEST)
Talán vállalható sebességű:
SELECT page.page_title title, talkcat.cl_to cat FROM page JOIN page AS talk ON page.page_title = talk.page_title AND page.page_namespace = 0 AND talk.page_namespace = 1 JOIN categorylinks AS pagecat ON page.page_id = pagecat.cl_from JOIN categorylinks AS talkcat ON talk.page_id = talkcat.cl_from WHERE pagecat.cl_to = 'Élő személyek életrajzai' AND (talkcat.cl_to = 'Forrással nem rendelkező lapok' OR talkcat.cl_to = 'Kevés forrással rendelkező lapok' OR talkcat.cl_to = 'Részben rossz forrással rendelkező lapok') ORDER BY cat, title ASC;
A "kategóriák szerint"-et nem értem. --Tgrvita•IRC•WP•PR 2010. április 18., 17:42 (CEST)
- Ne ömlesztve legyen listázva, hanem a 4 kategória szerint. – OrsolyaVirág
HardCandy 2010. április 18., 17:55 (CEST)
Átírtam. --Tgrvita•IRC•WP•PR 2010. április 18., 18:25 (CEST)
Ennek nem volt eredménye, helyette ezt futtattam:
SELECT page.page_title title, pagecat.cl_to cat FROM page JOIN page AS talk ON page.page_title = talk.page_title AND page.page_namespace = 0 AND talk.page_namespace = 1 JOIN categorylinks AS pagecat ON page.page_id = pagecat.cl_from JOIN categorylinks AS talkcat ON talk.page_id = talkcat.cl_from WHERE talkcat.cl_to = 'Élő_személyek_életrajzai' AND (pagecat.cl_to = 'Forrással_nem_rendelkező_lapok' OR pagecat.cl_to = 'Kevés_forrással_rendelkező_lapok' OR pagecat.cl_to = 'Részben_rossz_forrással_rendelkező_lapok') ORDER BY cat, title ASC;
Eredmény itt: Szerkesztő:Hunyadym/Forrás nélküli cikkek élő személyekről. – Hunyadym
Vita 2010. július 2., 21:38 (CEST)
[szerkesztés] A fenyegetett lapok lapmérete
Méret szerint csökkenően rendezett lista kellene a lapméretek feltüntetésével azokról a lapokról, amiket közeli törlés fenyeget a tisztogató akció folytán. Az érintett szócikkek listáját tartalmazó txt fájl a „VIL copy” levlista „Szócikkméret, Tgr?” szálán található. Kb. 5 ezer cikkről van szó. Ha nincs hozzáférésed a listához, írj egy e-mail-t és én megküldöm neked akár a fájlt, akár a meghívót a levlistára, amit éppen kívánsz.
Karmelaüzenőlap 2010. december 6., 10:02 (CET)
- 2010. júniusi az utolsó letöltött dumpom. Ha ez jó, akkor le tudom futtatni, ha valaki megírja a lekérdezést. – Hunyadym
Vita 2010. december 6., 17:00 (CET)
A november előtti dumpokban még nincsenek benne a problémajelölő kategóriák, úgyhogy az adatbázislekérdezés itt nem egy célszerű megoldás. – Tgrvita 2010. december 6., 19:41 (CET)
Bottal megoldható az élő wikiből, valamikor a héten megpróbálom beütemezni, ha nem oldódik meg (ma biztos nem). Bináris ide Kelt: Wikipédia, 2010. december 6., 21:33 (CET)
| bot kód |
|---|
#!/usr/bin/python # -*- coding: utf-8 -*- """Usage: articlesize.py [articlelist] [output file]""" import sys, csv, codecs from heapq import heappush, heappop import wikipedia as pywikibot import query batchSize = 25 def preload(file): global batchSize list = [] i = 0 for name in file: if i == batchSize: yield list list = [] i = 0 list.append(name.strip()) i += 1 yield list def sizes(names): global batchSize params = { 'action': 'query', 'prop': 'revisions', 'titles': names, 'rvprop': 'size', } data = query.GetData(params, pywikibot.getSite()) if 'error' in data: raise RuntimeError("API query error: %s" % data) if not 'pages' in data['query']: raise RuntimeError("API query error, no pages found: %s" % data) for page in data['query']['pages'].values(): name = page['title'] if 'missing' in page: size = '-1' else: try: size = page['revisions'][0]['size'] except KeyError: print page sys.exit(2) yield (size, name) if len(sys.argv) != 3: print __doc__ sys.exit(1) list = [] infile = codecs.open(sys.argv[1], 'rt', 'utf-8') i = 0 for names in preload(infile): print "%d..." % i for data in sizes(names): heappush(list, data) i += batchSize outfile = csv.writer(open(sys.argv[2], 'wb')) while list: data = heappop(list) row = [str(data[0]), data[1]] outfile.writerow([codecs.encode(cell, 'utf-8') for cell in row]) |
– Tgrvita 2011. január 1., 18:13 (CET)
[szerkesztés] Mánia
Kedves Guruk! Kellene nekem egy olyan gyűjtemény amely a következő két kategóriát listázza: 1) Egyértelműsítő lapok vitalapjai, amelyek redirektelnek valahová. 2) Olyan vitalapok, amelyek egyértelműsítő lapok vitalapjára redirektelnek. Itt mindenhol félrevezetés megy, így szeretnék itt rendet tenni. Nagyon köszönöm, előre is! – Burumbátor Speakers’ Corner 2011. január 6., 18:21 (CET)
Egyre mániákusabb leszek! Vagy nagyon nem lehetséges a kérést lefuttatni? Vagy másképp is lehet? – Burumbátor Speakers’ Corner 2011. január 10., 17:36 (CET)
Nem tudom, van-e per pillanat valakinek adatbázislekérdezések futtatására alkalmas gépe. Az egyesületi szerver beüzemelése még legjobb esetben is néhány hét. – Tgrvita 2011. január 10., 19:03 (CET)
Milyen gép kell hozzá? Nekem hatalmas kapacitású gépe(i)m vannak, csak én nem vagyok IT-s. De gyorsan felfogok és végrehjatok dolgokat. Ha hozzásegítesz vagy valaki más, hogy megcsináljam, én lefuttatom. – Burumbátor Speakers’ Corner 2011. január 10., 19:08 (CET)
Egy átlagos modern gépen (valami kétmagos + 2-3G memória + 10-20G tárhely) kényelmesen elfut szerintem. A telepítés menete itt van leírva, nem egyszerű, de nem is muszáj szakértőnek lenni hozzá. – Tgrvita 2011. január 10., 21:39 (CET)
- Nekem van adatbázisom, de nagyon régi (júniusi) dumppal… Most már talán érdemes megvárni, amíg lesz új… – Hunyadym
Vita 2011. január 10., 23:11 (CET)
Van ebben az ügyben fejlemény? --Burumbátor Speakers’ Corner 2011. február 24., 18:35 (CET)
A dumpok frissülnek; az egyesületi szervert meghozta a postás, a telepítés, a hosting szolgáltatóval való szerződéskötés és a beüzemelés még hátravan. – Tgrvita 2011. február 24., 19:07 (CET)
[szerkesztés] kategorizálatlan WP lapok
Sziasztok!
Nekem le tudnátok futtatni egy olyan listát, ami a kategorizálatlan WP lapokat tartalmazza? Elvileg csak pár kéne, hogy szerepeljen benne. Köszönöm. – OrsolyaVirág
HardCandy 2011. január 10., 17:45 (CET)
Lásd mint fent. A lekérdezés:
SELECT page_title FROM page LEFT JOIN categorylinks ON page_id = cl_from WHERE cl_from IS NULL AND page_namespace = 4 ORDER BY page_title
– Tgrvita 2011. január 10., 21:52 (CET)
[szerkesztés] Örömhír: a friss dumpot BinBot keresi
Ld. User:BinBot/frissdump.py. Az érdekelteknek javasolt figyelőlistára venni {{A dump dátuma}} sablont. A frissítés akkor lesz teljesen rendszeres, ha beindul a toolserver (amit már remélhetőleg csakugyan fél lábon is ki tudunk várni). Az eddiginél addig is csak gyakoribb lehet, most egy novemberi dátumot nyugdíjaztam.
Bináris ide Kelt: Wikipédia, 2011. május 16., 10:50 (CEST)
[szerkesztés] redirektek
Sziasztok! Kellene az összes olyan redirekt listája, mely olyan lapra mutat, amiben szerepel a vasúti jármű infobox és nincs kategorizálva vagy csak egy kategóriában szerepel! Az ideális cél az, hogy mindegyiknek kettő vagy három kategóriája legyen! (ország + tengelyelrendezés + gyártó, ott ahol van külön kategória hozzá) – B.Zsolt vita 2011. június 4., 16:42 (CEST)
[szerkesztés] tt tagek
Hello! Ki tudná valaki gyűjteni azokat a szócikkeket, amelyekben több <tt> nyitótag van, mint </tt> zárótag? Esetleg külön helyre a fordítottját? (Az is jó, ha egybe jön, de akkor szeretném tudni, hogy a nyitóból vagy a záróból van több...) Köszi! Sücy vita 2011. december 11., 14:41 (CET) Hogy lehet belefutni a 17 ilyen szócikk egyikébe csak úgy? Megoldottam saját SQL lekérdezéssel...