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 | ||||||||||||||||||||||
| ||||||||||||||||||||||
Kérdés
szerkesztésEz az oldal mire való és miért nem használjuk? • Bennó fogadó 2008. május 4., 18:17 (CEST)
Kérések
szerkesztésSzeretné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)
- 'Magyar labdarúgók' helyett próbáld meg a 'Magyar_labdarúgók' kifejezést. – Hunyadym Vita 2010. január 27., 18:14 (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)
Olyan fájl névterű lapok, ami mögött nincsen fájl
szerkesztésOlyan 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)
- A végén már boldog-boldogtalannak adatbázisa lesz otthon, bírni kell a konkurenciaharcot. Bináris ide Kelt: Wikipédia, 2010. január 28., 14:46 (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
Interwiki nélküli kategóriák
szerkesztés- (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)
WP-névtér
szerkesztésÜ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)
Friss verzió ugyanott. – Hunyadym Vita 2010. július 2., 21:22 (CEST)
élő személyek
szerkesztésSziasztok!
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)
A fenyegetett lapok lapmérete
szerkesztésMé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])
|
Mánia
szerkesztésKedves 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)
1) Általánosabban, kapcsolódó névterek közül az egyik redir:
select c1.page_namespace, c1.page_title
from page c1 join page c2 on c1.page_title = c2.page_title and c2.page_namespace = c1.page_namespace + 1 and c1.page_namespace % 2 = 0
left join redirect c3 on c1.page_id = c3.rd_from
left join redirect c4 on c2.page_id = c4.rd_from
where c1.page_namespace != 2
and ((c3.rd_from is null and c4.rd_from is not null) or (c3.rd_from is not null and c4.rd_from is null))
order by 1, 2
Vannak redirek, ahol a page_is_redirect = 0!
2)
select c2.page_title
from redirect c1
join page c2 on c1.rd_from = c2.page_id
join page c3 on c1.rd_title = c3.page_title and c1.rd_namespace = c3.page_namespace + 1 and c3.page_namespace % 2 = 0
join templatelinks c4 on c3.page_id = c4.tl_from
where c2.page_namespace = 1
and c4.tl_namespace = 10
and c4.tl_title = 'Egyért'
order by 1
Eredmény: Szerkesztő:Burumbátor/vitaredir egyért. 2012-09-29-es kép. --Bean49 vita 2012. október 11., 15:40 (CEST)
kategorizálatlan WP lapok
szerkesztésSziasztok!
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
Örömhír: a friss dumpot BinBot keresi
szerkesztésLd. 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)
redirektek
szerkesztésSziasztok! 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)
select c2.page_namespace, c2.page_title
from redirect c1
join page c2 on c1.rd_from = c2.page_id
join page c3 on c1.rd_namespace = c3.page_namespace and c1.rd_title = c3.page_title
join templatelinks c4 on c3.page_id = c4.tl_from
where c4.tl_namespace = 10
and c4.tl_title = 'Vasúti_jármű_infobox'
and (select count(*) from categorylinks where cl_from = c3.page_id) < 2
order by 1, 2
Eredmény: Szerkesztő:B.Zsolt/vasúti redir. 2012-09-29-es kép. --Bean49 vita 2012. október 12., 14:22 (CEST)
tt tagek
szerkesztésHello! 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...
page_is_redirect
szerkesztésA page_is_redirect hibás. Lásd:
select page_is_redirect, case when rd_from is not null then 'X' end as rd_from, count(*)
from page left join redirect on page_id = rd_from
group by page_is_redirect, case when rd_from is not null then 'X' end
--Bean49 vita 2012. október 12., 12:41 (CEST)
Mi a hiba? És lehet case-t tenni else nélkül ilyen helyre? Akkor soronként változó számú mező jön ki, nem? Bináris ide Kelt: Wikipédia, 2012. október 12., 21:26 (CEST)
Több mint 120 000 redir van, ahol a page_is_redirect = 0. Lehet. Nem a mezők száma lesz változó, hanem az egy mező értéke. --Bean49 vita 2012. október 12., 22:27 (CEST)
Lásd még mw:Manual talk:Page table#page_is_redirect vs redirects table --Tgrvita 2012. október 14., 05:35 (CEST)
Érdekes eredmény:
SELECT page_is_redirect, CASE WHEN rd_from IS NOT NULL THEN 'X' END AS rd_from,
left(convert(old_text using utf8), 9) as old_text, COUNT(*)
FROM page
join revision on page_latest = rev_id
join text on rev_text_id = old_id
LEFT JOIN redirect ON page_id = rd_from
where page_is_redirect = 1 or rd_from is not null
GROUP BY 1, 2, 3
page_is_redirect | rd_from | old_text | COUNT(*) |
---|---|---|---|
0 | X | \n\n#ÁTIRÁN | 37 |
0 | X | \n\n#REDIRE | 21 |
0 | X | \n_#REDIRE | 1 |
0 | X | \n#ÁTIRÁNY | 22 |
0 | X | \n#REDIREC | 4 |
0 | X | _\n_#ÁTIRÁ | 1 |
0 | X | ____#ÁTIR | 6 |
0 | X | _#ÁTIRÁNY | 11 |
0 | X | _#REDIREC | 4 |
0 | X | #ÁTIRÁNYÍ | 123 559 |
0 | X | #REDIRECT | 803 |
1 | X | #REDIRECT | 19 904 |
(A sortöréseket és a szóközöket lecseréltem.) Látható, hogy ahol 1, ott egyértelmű. --Bean49 vita 2012. október 17., 10:47 (CEST)
Megoldódott a rejtély:
Eredmény left 12-el |
---|
page_is_redirect old_text count(*) 0 \n\n#ÁTIRÁNYÍT 37 0 \n\n#REDIRECT 21 0 \n #REDIRECT 1 0 \n#ÁTIRÁNYÍTÁ 22 0 \n#REDIRECT [ 4 0 \n #ÁTIRÁNYÍ 1 0 #ÁTIRÁNY 6 0 #ÁTIRÁNYÍTÁ 11 0 #REDIRECT [ 3 0 #redirect[[ 1 0 #ÁTIRÁNYÍTÁS 123559 0 #Redirect [ 2 0 #Redirect [[ 104 0 #REDIRECT: [ 2 0 #REDIRECT:[[ 4 0 #REDIRECT[[1 1 0 #REDIRECT[[2 1 0 #REDIRECT[[3 1 0 #redirect[[A 26 0 #REDIRECT[[B 37 0 #REDIRECT[[C 25 0 #REDIRECT[[D 27 0 #REDIRECT[[E 48 0 #REDIRECT[[F 27 0 #REDIRECT[[G 19 0 #REDIRECT[[H 20 0 #redirect[[i 15 0 #REDIRECT[[J 20 0 #REDIRECT[[K 72 0 #REDIRECT[[L 12 0 #REDIRECT[[M 72 0 #REDIRECT[[N 38 0 #REDIRECT[[O 24 0 #REDIRECT[[P 46 0 #REDIRECT[[R 23 0 #REDIRECT[[S 63 0 #REDIRECT[[T 23 0 #REDIRECT[[u 20 0 #REDIRECT[[V 16 0 #REDIRECT[[W 4 0 #REDIRECT[[X 1 0 #REDIRECT[[Z 9 0 #REDIRECT[[… 1 1 #REDIRECT [ 6 1 #REDIRECT [[ 19898 |
Csak azoknál 1, amik pontosan úgy kezdődnek, hogy „#REDIRECT [[
” (szóköz lehet több is). Ugyanakkor a mw:Manual:Redirect table szerint, ebben a táblában sincs benne az összes, aztán lehet, hogy mégis. --Bean49 vita 2012. október 17., 18:06 (CEST)
Ha jól értem, akkor a page_is_redirect csak akkor állítódik be, ha angolul van a varázsszó? Ha igen, az megér egy bugreportot. --Tgrvita 2012. október 18., 14:28 (CEST)
Igen, de még annál is szigorúbb, ^#REDIRECT +[[
nagybetű érzékenyen! Ezért nem esik egybe az enwikin sem. --Bean49 vita 2012. október 18., 14:50 (CEST)
Megvan! Kiderült, hogy a dump jó, viszont rossz az MWDumper. Lásd [1], Bugzilla:38919. --Bean49 vita 2012. október 18., 16:14 (CEST)
Az xml dumpban a page-nek van egy redirect tulajdonsága ha átiránytás, ahogy itt is látszik. Ezt, ezt és ennek a 121. sorát kéne módosítani, hogy jó legyen. --Bean49 vita 2012. október 18., 23:34 (CEST)
Van rá patch, bugzilla:7497, két és fél éve várja, hogy alkalmazzák. --Bean49 vita 2012. október 19., 02:55 (CEST)
Csinálj belőle gerrit pull requestet, a patchokat nem hiszem, hogy figyelnék manapság. --Tgrvita 2012. október 20., 07:52 (CEST)
Javítva. --Bean49 vita 2012. október 30., 22:31 (CET)
egyértelműsítő lapra hivatkozó sablonok
szerkesztésHa valaki ráér, és kedve van hozzá, kilistázná azokat a sablonokat, amelyek (közvetlenül vagy átirányításon keresztül) egyértelműsítő lapra hivatkoznak? --Hkoala 2012. július 17., 19:09 (CEST)
select c2.page_title, c3.page_namespace, c3.page_title
from pagelinks c1
join page c2 on c1.pl_from = c2.page_id
join page c3 on c1.pl_namespace = c3.page_namespace and c1.pl_title = c3.page_title
join templatelinks c4 on c3.page_id = c4.tl_from
where c2.page_namespace = 10
and c4.tl_namespace = 10
and c4.tl_title = 'Egyért'
union all
select c2.page_title, c3.page_namespace, c3.page_title
from pagelinks c1
join page c2 on c1.pl_from = c2.page_id
join page c3 on c1.pl_namespace = c3.page_namespace and c1.pl_title = c3.page_title
join redirect c5 on c3.page_id = c5.rd_from
join page c6 on c5.rd_namespace = c6.page_namespace and c5.rd_title = c6.page_title
join templatelinks c4 on c6.page_id = c4.tl_from
where c2.page_namespace = 10
and c4.tl_namespace = 10
and c4.tl_title = 'Egyért'
order by 1, 2, 3
5 perc.
Eredmény: Szerkesztő:Hkoala/egyértelműsítő lapra hivatkozó sablonok. --Bean49 vita 2012. október 9., 11:38 (CEST)
Egyértelműsítő névtag nélküli azonos alakú szócikkcímek
szerkesztésMegkérnék egy illetékest, hogy gyűjtse ki (pl. egy allapomra) azokat a szócikkcímeket, amelyekben nem szerepel zárójeles egyértelműsítő névtag, miközben van még másik vele azonos alakú (zárójeles névtagú) egyéb szócikkcím is. A kigyűjtés célja az egyértelműsítési rendszerünk alkalmazása. Köszönöm: – Joey üzenj nekem 2012. szeptember 2., 14:20 (CEST)
A WP:BÜ-n megoldás született. --Joey üzenj nekem 2012. november 1., 21:46 (CET)
Plainlinksneverexpand
szerkesztésAzoknak a lapoknak a listája, amiknek a forrásában szerepel
- plainlinksneverexpand
- prettytable
- box mint teljes szó (remélem lehet, de ne riasszon el az előző kettőtől)
összes névtér. --Bean49 vita 2012. október 2., 17:21 (CEST)
Rossz
select page_namespace, page_title from page where page_latest in (
select rev_id from revision where rev_text_id in (
select old_id from text where lower(convert(old_text using utf8)) like '%plainlinksneverexpand%'))
Kész. 3 órát futott. --Bean49 vita 2012. október 6., 09:49 (CEST)
select page_namespace, page_title from page where page_latest in (
select rev_id from revision where rev_text_id in (
select old_id from text where convert(old_text using utf8) regexp '[[:<:]]box[[:>:]]'))
order by 1, 2
Az utolsó is kész. Parancssorból 2 óra. --Bean49 vita 2012. október 6., 19:00 (CEST)
No hát ez siker! Bináris ide Kelt: Wikipédia, 2012. október 6., 21:30 (CEST)
A fenti lekérdezések a rossz példa. Mint kiderült, az MySQL nem szereti az IN-es allekérdezéseket. Lásd a fejlécet is. Fájdalmas tanulópénz volt. --Bean49 vita 2012. október 9., 17:19 (CEST)
Három táblát keresek
szerkesztésHárom táblára volna szükségem a huWiki dumpból:
- page
- revision
- text
Az utóbbi kettőt nem találom. huwiki-latest-tábla.sql.gz
néven keresem. Hol keressem?--Gyimhu vita 2012. december 9., 10:58 (CET)
Ezek nem külön vannak, hanem huwiki-latest-pages-articles.xml.bz2 néven futnak, együtt. --Bean49 vita 2012. december 9., 12:26 (CET)
Itt van róluk egy két szó, hogy mi van bennük: http://dumps.wikimedia.org/huwiki/20121207/ --Bean49 vita 2012. december 9., 12:30 (CET)
Köszönöm, sikerült beimportálni.--Gyimhu vita 2012. december 9., 17:21 (CET)
Sablondokumentáció
szerkesztésA sablonnévtérben mely /doc allapok tartalmaznak interwikit vagy a sablondokumentációtól eltérő kategóriát? Kontár szerkesztéseket kéne felderíteni. Teszteléshez: Sablon:HDS/doc, Sablon:Bots/doc. Köszi. Bináris ide Kelt: Wikipédia, 2012. december 21., 11:10 (CET)
select c1.page_title from page c1
where c1.page_namespace = 10 and c1.page_title like '%/doc'
and (exists (select 1 from langlinks where ll_from = c1.page_id)
or exists (select 1 from categorylinks where cl_from = c1.page_id and cl_to != 'Sablondokumentációk'))
order by 1
Wikipédia:SQL-futtatási kérések/sldoc --Bean49 vita 2012. december 21., 19:58 (CET)
Köszönöm! Bináris ideWikidata Kelt: Wikipédia, 2012. december 21., 20:24 (CET)
Wikiszövegben nyelvközi link
szerkesztésSziasztok! Szeretnék egy algoritmust (a quarry.wmflabs.org oldalon futtatnám), amivel ki lehet listázni az angol (illetve ha nem sokkal bonyolultabb, akkor bármilyen) Wikipédiára mutató nyelvközi hivatkozásokat (tehát [[en:…]]
igen, [[:en:…]]
vagy (értelemszerűen) [[enni]]
nem). --Tacsipacsi vita 2014. szeptember 20., 22:53 (CEST)
langlinks --Tgrvita 2014. szeptember 20., 23:28 (CEST)
- Köszi a linket, de nem jutottam vele sokra. Egy kész parancsot szeretnék (ami úgy kezdődik, hogy
SELECT
, és úgy végződik, hogy;
), nem értek igazán az SQL-hez. --Tacsipacsi vita 2014. szeptember 21., 00:45 (CEST)
Ilyen kereséseket az AWB Database Scannerével szoktam. A keresőkulcsom (Regex):
\[\[\s*?:?(en|EN|de|DE):.*?\]\]
Ez eddig csak 2 nyelv 4234 találattal a főnévtérben, de szükség szerint kibővíthető és ha akarod allapra lementhetem. -- ato vita 2014. szeptember 21., 08:45 (CEST)
- Ezt mivel csináltad? Nekem a
latest-pages-articles
legfrissebb változata összesen 7 találatot ad a szerkesztő- és vitanévtereken kívül, de ebből egy se fő névtér (jobban örülnék, ha magam is elő tudnám állítani, mert akkor mindig friss verzióm lehetne). (Amúgy pedig egyrészt szerintem nem kell kétszer beírni kis- és nagybetűvel, mert tud olyat is, hogy nem veszi figyelembe, hogy kicsi vagy nagy, másrészt pedig nem értem pontosan a zárójel előtti részt, de[[:en:…]]
biztos nem kell nekünk.) --Tacsipacsi vita 2014. szeptember 22., 01:11 (CEST)- Ahogy írtam is ezt az AWB (Tools menüpont alatti) Database Scannerével csináltam. Ha abba behívod a kicsomagolt dumpot, a text fül alatt csak a fenti szöveget kell beírni és a Regular Expression négyzetet kipipálni. Ha megvannak a találatok, csak utána próbálkozz a névtér fülek alatti szűkítéssel! De már Tgr is írja az SQL kódot. -- ato vita 2014. szeptember 22., 07:46 (CEST)
- @Ato 01: Azt értem, hogy Database Scanner, arra voltam kíváncsi, hogy a dump melyik fájlját használtad. (Egyébként érdekes módon most nekem is kijött ez a mennyiségű találat, azt gondoltam volna, hogy mindegy, hogy előtte vagy utána szűrök névtérre.) --Tacsipacsi vita 2014. szeptember 23., 17:51 (CEST)
- A latest-pages-articles dumpot jól írtad. Azt kell használni a legfrissebb dátummal. Ötszáz-valahány MB csomagolva. -- ato vita 2014. szeptember 23., 20:42 (CEST)
- Ahogy írtam is ezt az AWB (Tools menüpont alatti) Database Scannerével csináltam. Ha abba behívod a kicsomagolt dumpot, a text fül alatt csak a fenti szöveget kell beírni és a Regular Expression négyzetet kipipálni. Ha megvannak a találatok, csak utána próbálkozz a névtér fülek alatti szűkítéssel! De már Tgr is írja az SQL kódot. -- ato vita 2014. szeptember 22., 07:46 (CEST)
SELECT DISTINCT ll_title FROM langlinks WHERE ll_lang = 'en';
--Tgrvita 2014. szeptember 22., 01:25 (CEST)
- @Tgr: Itt próbálkoztam, de valamiért az enwikit hozza. Ha nem írom az elejére, hogy
USE huwiki_p;
, akkor semmit. Mindenesetre ez a pár ezer találat egyelőre elég lesz. Egyébként a Quarry dumpot vagy API-t használ? --Tacsipacsi vita 2014. szeptember 23., 17:51 (CEST)- Arra tippelnék, hogy egyiket sem: ez egy SQL-lekérdezés az adatbázison (vagyis inkább annak egy tükrén). Samat üzenetrögzítő 2014. szeptember 23., 20:22 (CEST)
- Akkor ez számomra az API-val egyenértékű, mert csak a frissítési intenzitás érdekelt (hogy több hetente vagy szinte azonnal). Ahhoz nem értesz, hogy miért nem a huwikit nézi? --Tacsipacsi vita 2014. szeptember 23., 22:38 (CEST)
- Gondolom meg kellene adni, hogy melyik adatbázison futtassa a lekérdezést. De az oldalon nincs semmilyen manualra utaló megjegyzés, utánajárni pedig most nincs időm. Cserébe csináltam egy listát, ami talán hasonlít arra, amit keresel: Szerkesztő:Samat/Interwikivel rendelkező lapok Samat üzenetrögzítő 2014. szeptember 23., 23:24 (CEST)
- Akkor ez számomra az API-val egyenértékű, mert csak a frissítési intenzitás érdekelt (hogy több hetente vagy szinte azonnal). Ahhoz nem értesz, hogy miért nem a huwikit nézi? --Tacsipacsi vita 2014. szeptember 23., 22:38 (CEST)
- Arra tippelnék, hogy egyiket sem: ez egy SQL-lekérdezés az adatbázison (vagyis inkább annak egy tükrén). Samat üzenetrögzítő 2014. szeptember 23., 20:22 (CEST)
Túlságosan szó szerint vettem a kérdést. Ha a szócikkeknek a nevére vagy kíváncsi, amikben az enwiki hivatkozások vannak, azt valahogy így lehet: SELECT DISTINCT page_title FROM langlinks JOIN page ON ll_from = page_id WHERE ll_lang = 'en';
--Tgrvita 2014. szeptember 24., 00:12 (CEST)
- Köszi, de asszem, beigazolódtak a rossz érzéseim, 266 702 szócikkből nem lehet 215 872 forráskódjában interwiki, tehát a Wikidata is beleszámít. Van esetleg másik tábla vagy marad a DB Scanner minden egyes nyelvkódot beillesztve? --Tacsipacsi vita 2014. szeptember 24., 23:13 (CEST)
- Azt nem mondtad, hogy csak a szócikk névtérre vagy kíváncsi...
SELECT DISTINCT page_title FROM langlinks JOIN page ON ll_from = page_id WHERE ll_lang = 'en' and page_namespace = 0;
--Tgrvita 2014. szeptember 25., 19:23 (CEST)- Mert nem is csak arra voltam kíváncsi… A kétszázhatvanezer túlzás volt, valójában kilencszázezerről van szó, ám a Krokodil Dundee szócikkben akkor sincsen semmi olyan, amit keresünk, csak 23 link a Wikidatán. Ergo nem jó ez a tábla, tényleg a DB Scanner a legegyszerűbb. --Tacsipacsi vita 2014. szeptember 25., 20:06 (CEST)
- Akkor talán
SELECT DISTINCT page_title FROM langlinks JOIN page ON ll_from = page_id LEFT JOIN wikidatawiki.wb_items_per_site ON ips_site_id = 'huwiki' AND ips_site_page = page_title WHERE ll_lang = 'en' AND page_namespace = 0 AND ips_row_id IS NULL;
, de ez csak szócikkekre fog működni, mert hálistennek a Wikidata és a Wikipédia adatbázisa egész máshogy tárolja a névtereket :-/ - Vagy a dbscanneres módszerrel (de az lassú lesz, hamis pozitívok lesznek benne a regexp miatt, meg biztos egy-két hiba is maradt benne):
SELECT page_title FROM page JOIN revision ON page_latest = rev_id JOIN text ON rev_text_id = old_id WHERE old_text REGEXP '\\[\\space:*:?[a-zA-Z]{2,3}(-[a-zA-Z]{1,3})?:';
--Tgrvita 2014. szeptember 26., 17:05 (CEST)
- Akkor talán
- Mert nem is csak arra voltam kíváncsi… A kétszázhatvanezer túlzás volt, valójában kilencszázezerről van szó, ám a Krokodil Dundee szócikkben akkor sincsen semmi olyan, amit keresünk, csak 23 link a Wikidatán. Ergo nem jó ez a tábla, tényleg a DB Scanner a legegyszerűbb. --Tacsipacsi vita 2014. szeptember 25., 20:06 (CEST)
- Azt nem mondtad, hogy csak a szócikk névtérre vagy kíváncsi...
De mi a baj az általam készített listával? :) Samat üzenetrögzítő 2014. szeptember 26., 20:46 (CEST)
- Egyszerűen annyi, hogy nem frissül magától. (Egyébként hogyan készítetted?) --Tacsipacsi vita 2014. szeptember 28., 16:26 (CEST)
- Nem szoktak maguktól frissülni :) Kb. háromhetente kézzel frissíthető, ha van rá igény. Az AWB adatbázisszkennerével csináltam egy Tgr által megadotthoz nagyon hasonló regexppel, annyi különbséggel, hogy betettem elé még két szögletes záró zárójelet és egy sortörést, különben nagyon-nagyon sok fals találatot adna (pl. a kép: és hasonló szövegközi előtagokat is interwikinek nézné). Ennél a megoldásnál nem minden esetben kapod meg azokat az oldalakat, ahol csak egyetlen interwiki van, de ez nem igazán tipikus. Samat üzenetrögzítő 2014. szeptember 28., 19:32 (CEST)
Képek
szerkesztésTisztelettel kérek egy kollégát, hogy amennyiben megvalósítható, azokat a képeket, amelyek a Commonsban már megtalálhatók, de nálunk is megvannak, a Szerkesztő:Burumbátor/Commons lapra listázzák ki. Azokra gondolok, amelyek leírólapján megjelenik az "Ez a kép a commons XXXXX című képének duplikátuma". Ha nem lehetséges, kérem magyarázzátok el, hogy végre megérthessem, hogyan kerül ez a mondat rá a magyar lap képére.
A másik kérésem pedig az volna, hogy a 8000valahány ellenőrizetlen képből listázzátok ki azokat, amelyek nincsenek felhasználva, vagyis egyik szócikket sem illusztrálják, a Szerkesztő:Burumbátor/Nincs felhasználva lapra.
Kérem, hogy első körben ezt a kupacot nézzétek át. Köszönettel, – Burumbátor Súgd ide! 2017. november 19., 12:20 (CET)
- A második itt van. Ha gondolod, átmásolom allapra (vagy akár te is megteheted: Download data → Wikitable, a fájlt bármilyen normális szövegszerkesztővel (pl. Notepad++, nem Jegyzettömb) megnyitva egy az egyben átmásolható), de az statikus lesz, ezt pedig bármikor egy kattintással tudom frissíteni. Az első már vagy tíz perce fut, de még az se biztos, hogy jó lesz az eredmény… Gondolom, azért is nincs ilyen kimutatás, mert erőforrás-igényes, hiszen a wikin belüli duplikátumokról van (a Commonson van is valami a listán). – Tacsipacsi vita 2017. november 19., 16:35 (CET)
Szócikkinkubátoros cikkek
szerkesztésSziasztok! Van egy szócikkinkubátoros kategóriánk, ahol a szerkesztői allapokon ragadt, régóta nem módosított, de értékes cikk kezdeményeket, félkész anyagokat gyűjtjük, ez az: Kategória:Szócikkinkubátor. Mivel ezekben nehéz kereségli, ezért készítenék egy allapot, ahol kilistáznám a szócikkeket, és ehhez kérnék egy kis SQL-segítséget: egy olyan lekérdezést, ami kiszedi a fenti kategória valamennyi alkategóriájából a cikkícímeket. Mivel a cikkek látható címeit a betűrend miatt utóbb kézzel módosítani kell, hogy ne mindegyik a Szerkesztő előtaggal kezdődjön és ne a szerkesztőnév legyen a sorbarendezés alapja, ezért csak a lekérdezésre lenne szükségem, aztán én frissítenék egy aloldalt ennek segítségével.
A lényeg tehát, hogy a Kategória:Szócikkinkubátor összes alkategóriájában szereplő cikkek kilistázására szeretnék kérni egy lekérdezést. Kösz előre is Palotabarát vita 2019. július 31., 11:24 (CEST)
- @Palotabarát: https://petscan.wmflabs.org/?language=hu&project=wikipedia&depth=1&categories=Sz%C3%B3cikkinkub%C3%A1tor&sortby=ns_title&doit= – Tacsipacsi vita 2019. augusztus 1., 00:59 (CEST)
- Tacsipacsi kösz! Erről a Petscanről elfeledkeztem. Palotabarát vita 2019. augusztus 1., 01:29 (CEST)
Számítástechnikai cikkek
szerkesztésÜdv! A botfalon tanácsolták, hogy kérdezzem meg itt is: lehet-e készíteni egy listát az alábbi cikkekről?:
- A Kategória:Számítástechnika, Kategória:Informatika, vagy ezeknek valamelyik alkategóriájában van, ÉS
- Az első változat kommentje "Készült a(z) [blablabla] oldal lefordításával"
(Ha a második pont nem oldható meg könnyen, akkor helyette megfelel egy dátum szerinti szűrés is: 2020 május-június + 2021 május-június)
köszönettel, Whitepixels vita 2021. június 15., 11:23 (CEST)