Wikipedia Diskussion:Datenbank-Abfragen

Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 1. Juli 2003 um 13:05 Uhr durch Nerd (Diskussion | Beiträge) (Contra entfernt, weil erst jetzt verstanden). Sie kann sich erheblich von der aktuellen Version unterscheiden.

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


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 99

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

---

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)


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)

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