Wikipedia Diskussion:Datenbank-Abfragen

Syntaxfehler in der Datenbankabfrage

Bearbeiten

Fehler in der Datenbank aus Wikipedia, der freien Enzyklopädie

Es gab einen Syntaxfehler in der Datenbankabfrage. Das könnte eine illegale Suchanfrage sein (siehe Wikipedia durchsuchen), oder ein Softwarefehler. Die letzte Datenbankabfrage lautete:

SELECT cur_title,cur_text from cur where cur_is_redirect=0 and cur_namespace=0 and cur_text rlike '[B-DF-HJ- NP-TV-XZb-df-hj-np-tv-xz]{9,}|[AEIOUYaeiouy]{7,}|[A-Za-z]{40,}' LIMIT 100

aus der Funktion "SpecialAsksql::doSubmit". MySQL meldete den Fehler "1139: Got error 'invalid character range' from regexp". --nerd

Könnte an dem Leerzeichen/Zeilenumbruch innerhalb des regexp liegen. --SirJective 12:12, 27. Aug 2004 (CEST)

Abfrage der aktivsten Bearbeiter

Bearbeiten

Zur Abfrage der aktivsten: Sollte man nicht auch die 'old' SQL-Tabelle abfragen, da die 'cur' ja nur die letzten Versionen enthält? Mein SQL ist allerdings schwach, und ich weiss nicht, wie man das kombinieren kann. Ausserdem: Die 'old' Tabelle ist sicher riesig, und dann wäre die Abfrage sehr zeitaufwendig. -- Schewek 19:31, 24. Jun 2003 (CEST)

leider bin ich auch nicht firm in SQL ; ).. ich habe das auf fr:Wikipédia:Participants les plus actifs gefunden.. dort gibt es zwei unterschiedliche abfragen.. vielleicht hilft das irgendwas.. gruß! -- pit 21:47, 24. Jun 2003 (CEST)
was mir grade so einfällt ist.. das cur könnte sich doch darauf beziehen wer momentan am aktivsten ist.. liege ich da richtig? -- pit 22:26, 24. Jun 2003 (CEST)

Also in der Tabelle cur steht immer nur die aktuelle Version eines Artikels. Was die Anfrage tut ist dann wohl eher: Wer sind die Leute, die am häufigsten als letzte Editoren (top, Beobachtungsliste) geführt werden. Eher sinnlos, meiner Meinung nach. Das ganze ist eh sehr schwierig, weil wenn jemand 200 Typos verbessert, dann kommt er 200 mal vor, einer schreibt 2 gute lange Artikel, wer ist aktiver? Ich finde einfach die Fragestellung ist eigentlich schon recht nutzlos. Und dafür finde ich mindestens noch 2-3 Gründe. --Smurf 00:17, 25. Jun 2003 (CEST)

das leuchtet mir ein. wie gesagt ich muss nochmal betonen: ich nix sprechen sql.. ; ). ich habe nur festgestellt das die ergebnisse der abfrage in etwa meiner beobachtung entsprach, also das die "aktivsten" (welche mich jeden tag aus den recent changes anblitzen ; ), auch ungefähr oben in der liste stehen.
wie sich "aktiv" von "aktiv" unterscheidet ist wieder ein anderes thema, klar. mir ging es eigentlich rein um den quantitativen aspekt (alá wieviel edits überhaupt) .. die qualität hat mich nicht weiter beschäftigt, das sollte jeder für sich beurteilen wieviel gewicht er den änderungen gibt...
ich finde dennoch das so eine zahl manchmal ganz aufschlussreich sein kann.. gerade bei neuankömmlingen, weil sie zumindest ungefähr anzeigt wer hier über viele verschiedene seiten "gewandert" ist und was auch immer dort getan hat, ohne lange zeit beobachten zu müssen. wenn es sich nicht gerade um einen bot handelt, hat dieser user auch aller wahrscheinlichkeit nach (in letzter zeit), eine menge zeit hier rein-investiert/verbracht. (ich befürchte ich stehe einfach nur tierisch auf statistiken aller art.. chrchr 8) gruß! -- pit 02:58, 25. Jun 2003 (CEST)

Tja, ich spreche ein wenig SQL, aber davon abgesehen gibts eine einfache Lösung, heute morgen fällt sie mir auch wieder ein, die Benutzerbeiträge (bei reg. Benutzern auf deren User-Seite). Wenn man da einfach 500 ausgeben lässt, dann hat man einen groben Überblick und weiss auch wieviele Beiträge es circa sind. Man kann ja auch das limit in der URL , wenns wirklich nötig ist, hochsetzen. Das geht aber nur für jeweils einen Benutzer.

Dann gibts natürlich noch eine SQL-Lösung, die das eigentlich alles machen würde, leider dauert das zu lange und die Maschine hier streikt.

klar, die user contributions sind vorhanden.. nur bei inzwischen knapp 1800 usern ist das etwas umständlich rauszufinden wer was wieviel.. das mit dem limit in der url habe ich auch des öfteren schon "benutzt", ich finde einfach eine liste schöner, um eben schnell einen überblick zu bekommen. wenn dich die query in dieser form stört kannst du sie von mir aus auch gerne wieder heraus nehmen. -- pit 14:45, 25. Jun 2003 (CEST)

Mich stört die Query nicht, ich wollte nur darauf hinweisen das sie nicht das tut was der Name verspricht. --Smurf 16:07, 25. Jun 2003 (CEST)

SQL-Anleitung

Bearbeiten

Hallo SQL-Mächtige, mich interessiert das Thema auch, denn ich will auch SQL-Abragen machen - nein keine Sorge Sysop will ich nicht werden, ich hätte das viel lieber lokal (kann man viel mehr Unfug machen :-). Also da habe ich mir mal als erstes old_table.sql besorgt. Jetzt habe ich hier ein Linux mit laufendem SQL-Server, sollte man da nicht auch in der Lage sein so Abfragen abzusetzen? Was ich eigentlich jetzt bräuchte wäre eine gute Einführung in SQL. Wer kann mir da was empfehlen - vielleicht gleich auf der Seite Wikipedia:Datenbank-Abfragen einen Abschnitt Weblinks einrichten - wie sieht denn SQL aus? Ah, da sind ja schon ein paar Weblinks! Jetzt bräuchte ich glaube ich nur noch Informationen über die Organisation der Datenbank, Bezeichnungen und so Zeugs. Danke schon mal und Gruß Chd 18:09, 25. Jun 2003 (CEST)

Hmm, also erstmal: old_table.sql ist nur die hier schon erwähnte old-Tabelle, cur ist die mit den aktuellen Artikeln. Was du jetzt hast ist eine von nem guten duzend Tabellen, der Rest kann z.B. hier [[1]] bewundert werden. Das Handbuch von Mysql ist prinzipiell ok, siehe www.mysql.com. Was hier mit der Abfrage geht (für sysops) sind selects, die anderen drei SQL Befehle insert, update, delete gibts hier eh nicht. Sollte man dann wirklich eine SQL-Anleitung bauen? Fehler können hier fatale Auswirkungen haben, und ich weiss nicht ob die dringend benötigt wird die Anleitung. Wenn das für nötig erachtet wird schreib ich eine. --Smurf 21:00, 25. Jun 2003 (CEST)
Besser es stellt jeder der eine Abfrage braucht hier seine Frage und erhält den passenden SQL-Befehl. Der Könner können aber auch gleich direkt los. -- TomK32 09:21, 26. Jun 2003 (CEST)

Wann funktionieren die Abfragen wieder?

Bearbeiten

Bestehen Chancen, dass die Abfragen irgendwann mal wieder funktionieren? - WikiWichtel 10:30, 31. Mär 2004 (CEST)

Abfragewünsche

Bearbeiten

Listet hier eure Wünsche für spezielle SQL-Anfragen.

Redirects auf nichtexistente Artikel

Bearbeiten

"REDIRECT auf nichtexistenten Artikel" wäre interessant. --nerd 09:22, 30. Apr 2003 (CEST)

Unterschrift eines Users auf Artikelseiten

Bearbeiten

Wunsch, sql Abfrage um folgendes herauszufinden: 'Unterschrift eines Users auf Artikelseiten.' --nerd

SELECT cur_title FROM cur WHERE cur_text LIKE '%-- [[Benutzer%' AND cur_namespace = 0 LIMIT 100
*handheb* ich bin der Schuldige. Besser ist es aber sicher herauszufinden welche Seite auf eine Benutzerseite verweißt. -- TomK32 12:49, 1. Jul 2003 (CEST)
Kannst du es es so umformen, das es dem entsprcht was ich schon voreilig reingetippt habe: also "unerwüschte Unterschrift" aber "Keine geschützte Seite". --nerd
Weißt du eigentlich wie viele geschützte Seiten es gibt? 8, zwei von mir geschützt. -- TomK32 13:39, 1. Jul 2003 (CEST)
SELECT cur_title,cur_restrictions
FROM cur
WHERE cur_restrictions!="sysop" AND cur_namespace = 0 AND cur_text LIKE '% [[Benutzer%'
LIMIT 10;
MHM danke, aber hiet bekomme ich zB 25. Januar und kann aber keine unzulässige Unterschrift eines User entdecken. --nerd
Du kennst diesen hohen Feitertag nicht? Ungläubiger! Hail the King -- TomK32 14:11, 1. Jul 2003 (CEST)

Alles Seiten im Wikipedia-Namensraum, ohne Redirects

Bearbeiten

Geht folgendes: Alle Seiten im Wikipedia-Namensraum, aber ohne Redirects? Falls jemand eine Lösung hat bitte unter Wikipedia Diskussion:Seiten im Wikipedia-Namensraum eintragen. Schon mal Dankeschön! --chd 23:15, 1. Aug 2003 (CEST)

Kaputte Links, zu denen kürzere existieren

Bearbeiten

(von meiner Disk.seite kopiert. SirJective)
Mich würde eine SQL-Abfrage interessieren, die eine Liste generiert, ob in einem Artikel ein kaputter Link ist, aber ein Artikel mit einem oder zwei Buchstaben weniger existiert.

genauer:

existiert <-- existiert nicht
      Ort <-- Orten, [[Orte (Latium)|Orte]
    Lampe <-- Lampen

-- Ninjamask 21:45, 26. Aug 2004 (CEST)

Ich bin jetzt auf folgende Abfrage gekommen, für die du die cur-Tabelle und die brokenlinks-Tabelle brauchst:

select distinct concat('* [[Spezial:Whatlinkshere/',bl_to,'|',bl_to,']] -> [[',cur_title,']]') as data
from brokenlinks, cur
where cur_namespace = 0
and length(bl_to)>=4
and cur_title = substring(bl_to, 1, length(bl_to)-1)
order by substring(bl_to, length(bl_to),1), bl_to;

In dieser Form liefert sie für den Dump vom 22. August 2004 eine Liste von etwa 8700 Einträgen. [...] Nach Endbuchstaben sortiert könnte ich die Liste hochladen, wenn du magst. --SirJective 22:31, 27. Aug 2004 (CEST)

Gute Arbeit :-) Hab's mal überflogen, scheint besonders für Plural- und Typo-Links sehr nützlich zu sein. Nur die Jahreszahl-Links werden zwangsläufig unberechtigt aufgezählt. Aber wenn du die Liste hochlädst würde ich sicherlich damit arbeiten -- Beste Grüße Peter Lustig 22:39, 27. Aug 2004 (CEST)
Die Jahreszahl-Links könnte ich mit der richtigen regexp auch noch rausfiltern. Ich hab dasselbe auch noch mit 2 entfernten Buchstaben gemacht: Diese Liste umfasst fast 13000 Einträge, und ich fürchte, dass sie sich mit der 1-Buchstaben-Liste überschneidet. Werd die Liste demnächst hochladen, welcher Titel schwebt dir vor? (Ich bin immer so unkreativ.) --SirJective 01:36, 28. Aug 2004 (CEST)
Die letzten beiden (Dativ} und Ribisel}) stammen von der "Dingliste". Ich glaub, die kann ich in der Anfrage ausklammern, oder? --SirJective 01:40, 28. Aug 2004 (CEST)
Hab Teile der Liste unter Benutzer:SirJective/Kaputte Links mit kürzeren Treffern gespeichert. --SirJective 16:23, 28. Aug 2004 (CEST)

Artikel die ein User begonnen hat

Bearbeiten

kann mir bitte jm eine Abfrage basteln, für Artikel die ein User (ich) begonnen hat, danke.--°~° 11:31, 4. Sep 2004 (CEST)

Ich arbeite daran (cur+old-Dump vom 11. August). In der cur-Tabelle finde ich 74 neue Artikel (namespace 0) von dir (alles Redirects), in der old-Tabelle 322 (bisher ohne Redirect-Unterscheidung).
Hab noch einige Detailfragen:
  1. Willst du nur Artikel (namespace 0)?
  • Bitte auch im WP-namensraum
  1. Willst du auch Redirects?
  • EIg, ja bitte: falls der Artikel verschoben wurde
  1. Welche Angaben willst du (nur Titel, mit Zeit)?
  • Titel reicht mir:)
  1. In welcher Reihenfolge möchtest du sie (z.B. Titel, Zeit)?
  • Nach titel
  1. Möchtest du nur die Abfrage, oder auch das Ergebnis (wenn ja, wohin)?
--SirJective 17:09, 4. Sep 2004 (CEST)
ICh bedanke mich:) --14:10, 6. Sep 2004 (CEST)
Erledigt. Bitte schön. --SirJective 16:10, 6. Sep 2004 (CEST)

Diskussionsseiten von IP-Benützern

Bearbeiten

Es gibt im Laufe der Zeit zu vielen IP-Benützern Diskussionseinträge, die heute überhaupt nicht mehr relevant sind (dynamsiche IP-Adressen). Schön wäre daher eine SQL-Abfrage, welche eine Liste erzeugt, zu welen IP-Adressen Diskussionen existieren, so dass diese, wenn der letzte Diskussionseitrag schon etwas länger her ist, gelöscht werden können. Sonst besteht ja die Gefahr, dass ein Newbie unter einer dynamischen IP plötzlich mit Vorwürfen konfrontiert wird, obwohl er damit nichts zu tun hat (wer liest schon - genau genommen - den Hinweis im kursiven Text unten?). So könnte man viele Seiten aufräumen...--Filzstift 09:17, 29. Okt 2004 (CEST). PS: falls es gemacht wird; das Resultat unter Benutzer:Filzstift/IPDiskussionen ablegen; schön wäre eine Sortierung nach der letzten Bearbeitung der betroffenden Diskussion bzw. diese wird auch ausgegeben. --Filzstift 09:19, 29. Okt 2004 (CEST)

Ich werd mich dieser Aufgabe annehmen. Ich lad dir an genannter Stelle eine Liste derjenigen Benutzerdiskussionsseiten hoch, die dem regulären Ausdruck "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+" entsprechen (da sollten nicht allzuviele Nicht-IPs erwischt werden), und zwar chronologisch sortiert (älteste zuerst) mit Angabe des Tages der letzten Bearbeitung.
Wenn du magst, kann ich auch noch die Angabe hinzufügen, ob eine zugehörige Benutzerseite existiert. --SirJective 12:45, 29. Okt 2004 (CEST)
Erledigt. Alles weitere dazu auf der dortigen Diskussionsseite. --SirJective 13:43, 30. Okt 2004 (CEST)
Herzichen Dank! --Filzstift 20:25, 30. Okt 2004 (CEST)

Vorlage:Bild-Lizenz-unbekannt

Bearbeiten

Hallo, ein paar Hundert Bilder tragen diesen Baustein [2]. Auf den Bilderlöschkandidaten wurde die Abarbeitung derselben vorgeschlagen. Mir wäre es recht, das nicht alles auf einmal zu machen, sondern beispielsweise mit den 50 ältesten anzufangen. Also hätte ich gern Bilder mit diesem Baustein und zwar die 50, wo der Baustein am längsten drin ist. --Danke und Gruß vom Knecht Crux 18:16, 23. Nov 2004 (CET)

Vorerst erledigt. Mende dich bei Mehrbedarf. --SirJective 19:50, 23. Nov 2004 (CET)

Was nochmal super wäre: Vorlage:LöschantragBild. Alle Bilder mit dem Baustein, die sagen wir 20 Tage nicht bearbeitet sind. Also vergessene Löschanträge. Das können ruhig alle sein, wieder Linksschreibung ;) Achja und bitte nochmal die 50 nächsten von der anderen Abfrage, dass mir nicht langweilig wird =) --Danke Crux 22:52, 23. Nov 2004 (CET)

"Inselartikel"

Bearbeiten

Hi,

ich befürchte, dies ist nicht so einfach machbar, aber ich bitte mal trotzdem: Mir sind sogenannte Inselartikel aufgefallen, also Artikel die nur unter sich verlinken.

Als Beispiel war mal Jakob Buchli und Buchli-Antrieb. Ersterer wies auf den zweiten Artikel und der zweite auf den ersten. Sonst zeigte überhaupt kein Link auf einen dieser Artikel. Dies ist jetzt zwar nicht mehr so, aber ich kann mir vorstellen, dass es noch solche Inseln gibt (auch mit mehr als zwei Artikeln). Ist eine derartige Abfrage ausschliesslich mit SQL möglich? --Filzstift 08:51, 21. Dez 2004 (CET)

Interessante Idee. Irgendwo hab ich da mal eine Seite gesehen, die angibt, wieviele Artikel in wievielen Schritten von der Hauptseite aus erreichbar sind. Vielleicht findest du die wieder - die dort verwendeten Algorithmen könnte man als Basis nehmen.
Unabhängig davon sollte es mir auch so gelingen, eine geeignete Abfrage zu basteln, obwohl ich noch nie den Algorithmus von Dijkstra in SQL implementiert hab *g*
Damit sollte es mir möglich sein, Artikel-Inseln zu finden. Vielleicht ist es aber doch einfacher, ein externes Programm zu verwenden - mal schauen...
--SirJective 09:26, 21. Dez 2004 (CET)
Es muss nicht heute sein. Ist einfach ein Anstoss. --Filzstift 09:54, 21. Dez 2004 (CET)
Ich hab jetzt ein (noch extrem umständliches) Verfahren gebastelt, um Artikel zu finden, für die weder Artikel-Link-Ketten zur Hauptseite noch Artikel-Link-Ketten von der Hauptseite existieren (Seiten in und Links von/zu anderen Namensräumen wurden dabei komplett ignoriert). (Insgesamt habe ich: ~580 Seiten die weder von noch zur Hauptseite kommen, davon ~300 Nicht-Redirects; ~45.000 Seiten die von der Hauptseite verlinkt sind, aber nicht zur Hauptseite kommen - da müsste man evtl. geeignetere "bekannte" Ziele wählen; ~770 Seiten, die zwar zur Hauptseite, aber nicht von der Hauptseite verlinkt sind; und ~220.000 übrige Seiten, die sowohl zur als auch von der Hauptseite verlinkt sind.)
Die paar Nicht-Sackgassen-Artikel in dieser Liste sind: Drei Stubs, die nur untereinander verlinken (andere Ziele sind verlinkt, existieren aber noch nicht) (Appels-Algorithmus & Co.); Bundle_Project_Development ist nur von einer BKS verlinkt, auf die aber (positiv!) kein Artikel zeigt; aus Lacalle sollte man eine BKS machen; Nihil privativum ist Waise (war bereits am 6. Dez. gelöscht) und hat nur brokenlinks; dann ist da noch eine Seite, die ich vergessen hatte, zur Löschung vorzuschlagen ("Recovered/µ") und eine Portal-Diskussions-Seite, die nur von Seiten in anderen Namensräumen verlinkt ist. (Diese Artikel verlinken nur auf Artikel, die ihrerseits nicht "transitiv auf die Hauptseite" verlinken.)
Wenn ich Halbwaisen ausschließe, bleiben etwa 50 Nichtwaisen übrig. Diese Artikel sind nur von Artikeln verlinkt, die nicht "transitiv von der Hauptseite" verlinkt sind. Einige Beispiele: A11 (Rakete), Baulanderschließung, Ein_mittelalterlicher_Tugendkatalog, GDT, Klugscheißer (der zugehörige Redirect wurde offenbar schon zweimal gelöscht), ...
Ich werde mich weiter mit diesem Problem beschäftigen, und vielleicht irgendwann zu einer eleganten (und vor allem: automatisierten!) Lösung kommen. --SirJective 15:14, 22. Dez 2004 (CET)
siehe auch "six degrees" bei Kate's tools. (wird aber momentan anscheinen nur für en: angeboten.) grüße, Hoch auf einem Baum 15:33, 22. Dez 2004 (CET)

interwiki

Bearbeiten

Diskussion verschoben nach Benutzer Diskussion:SirJective/Gleichlautender Titel in de und en. --SirJective 01:12, 7. Feb 2005 (CET)

Abfrage nach Kategorien

Bearbeiten

Könnte netterweise jemand mal noch ein Bespiel einfügen, wie man sich alle Artikel mit einer bestimmten Kategorie auflisten lässt und vielleicht noch eins, bei dem die Anzahl dieser Artikel ausgegeben wird. -- Hunding 01:57, 13. Jun 2005 (CEST)

Ungetestet aus dem Gedächtnis, keine Gewähr!
-- Liefert die Titel
select cur_title
from categorylinks, cur
where
-- Kategorie:Person
cl_to = 'Person'
and cl_from = cur_id
-- nur Artikel (keine Benutzer-, WP- oder andere Seiten)
and cur_namespace = 0
order by cur_title;
-- Liefert die Anzahl der Titel
select count(cur_title)
from categorylinks, cur
where
-- Kategorie:Person
cl_to = 'Person'
and cl_from = cur_id
-- nur Artikel (keine Benutzer-, WP- oder andere Seiten)
and cur_namespace = 0;
Die Auflistung von Artikeln in allen Unterkategorien ist deutlich aufwändiger. Eine Beispielabfrage dazu ist auf Diskussion:Liste der astronomischen Themen.
--SirJective 21:54, 13. Jun 2005 (CEST)

interwiki, die zweite

Bearbeiten

Hi - heute habe ich mal eine Idee, für eine Datenbankabfrage, die sicher selten kompliziert ist ;). Die Liste der in en und de gleichen Titel ist ja schon eine schöne Hilfe. Extrem schön wär ja aber, wenn wir Artikel praktisch zu 99,9% zuordnen könnten. Möglich wär das z.B. bei Schauspielern und allen anderen Personen, die einen IMBd-Link haben... Beispiel: ist in der deutschen Wikipedia in einem Artikel {{IMDb Name|ID=0005936|NAME=Vilmos Zsigmond}} enthalten, dann steht im englischen Artikel {{imdb name|id=0005936|name=Vilmos Zsigmond}}. Im Prinzip müssen de-Artikel gesucht werden, die "{{IMDb Name|ID=[0-9]|" enthalten und dann nach en-Artikeln mit genau dieser imdb-Nummer. Und in den Artikel dürfen entsprechend keine interwikilinks vorhanden sein. Soweit meine Idee - schiebt es auf die Uhrzeit. MfG --APPER\☺☹ 03:34, 15. Jun 2005 (CEST)

Ich kann mir schon vorstellen, dass das mit reinem SQL geht - aber ich würde es nicht versuchen wollen. Vielleicht setz ich mich demnächst mal ran und schreibe ein kleines java-Progrämmchen dafür :) --SirJective 09:56, 15. Jun 2005 (CEST)

Syntax-Fehler?

Bearbeiten

Hi, könnte eine SQL-Fachkraft mal einen Blick auf Benutzer Diskussion:Filzstift/wikisign.org#Problem mit MySQL-SQL-Syntax bei EXISTS werfen und ggf. dortige Frage bezüglich [3]beantworten? Danke! --Filzstift 8. Jul 2005 20:55 (CEST)