Problem mit Abfrage SELECT DISTINCT DATE_FORMAT(date,"%Y")

Problem mit Abfrage SELECT DISTINCT DATE_FORMAT(date,"%Y")

am 20.03.2006 20:49:00 von Erik Hastens

Hallo,

ich versuche, aus einer Tabelle mit Ereignissen zu extrahieren, für welche
Jahre Einträge vorhanden sind, und diese dann absteigend zu sortieren. D.h.,
wenn Hunderte von Ereignisse an verschiedenen Tagen (Spalte date) der
letzten 3 Jahre vorhanden sind, möchte ich als Ausgabe so etwas wie
"2006,2005,2004" bekommen.

Wenn ich es mit

SELECT DISTINCT DATE_FORMAT(date,'%Y') as y FROM tbl WHERE userid='$userid'
ORDER BY DATE_FORMAT(date,'%Y')

versuche,.lädt mein Browser unendlich (?) viele Male den String 2006, viel
öfter, als Datensätze in der Tabelle vorhanden sind. Das ändert sich auch
nicht, wenn ich die ORDER BY weglasse. Auch wenn ich das mit einem anderen
feld als dem Datum versuche, geschieht das gleiche. Ebenso mit DISTINCTROW
statt DISTINCT.

Einzig mit

SELECT DISTINCT DATE_FORMAT(date,'%Y') as y FROM tbl WHERE userid='$userid'
LIMIT 1

bekomme ich genau einen Eintrag "2006" zurück, leider brauche ich ja aber
alle vorkommenden Jahre. Bei LIMIT 5 läuft alles wieder in die o.g.
Endlosschleife.

Verstehe ich die DISTINCT-Klausel nicht richtig oder wende ich sie nicht
richtig an?

Gruß
Erik

Re: Problem mit Abfrage SELECT DISTINCT DATE_FORMAT(date,"%Y")

am 20.03.2006 22:16:06 von Dominik Echterbruch

Erik Hastens wrote:
> Hallo,
>
> ich versuche, aus einer Tabelle mit Ereignissen zu extrahieren, für welche
> Jahre Einträge vorhanden sind, und diese dann absteigend zu sortieren. D.h.,
> wenn Hunderte von Ereignisse an verschiedenen Tagen (Spalte date) der
> letzten 3 Jahre vorhanden sind, möchte ich als Ausgabe so etwas wie
> "2006,2005,2004" bekommen.
>
> Wenn ich es mit
>
> SELECT DISTINCT DATE_FORMAT(date,'%Y') as y FROM tbl WHERE
> userid='$userid' ORDER BY DATE_FORMAT(date,'%Y')
^^^^^^^
> versuche,.lädt mein Browser unendlich (?) viele Male den String 2006, viel
^^^^^^^
Die markierten Stellen weisen darauf hin, daß du irgendeine
Programmiersprache benutzt, um das Ergebnis abzufangen und auszugeben.
Bitte führe die Abfrage direkt in der Mysql-Konsole aus. Passiert da das
gleiche?

Ich tippe auf "Nein". Daher vermute ich einen Fehler in deinem Programm
(bitte jetzt nicht den Code posten, damit bist du hier Off-Topic).

BTW: falls die User-ID numerisch ist, solltest du die Hochkommas außen
rum weg lassen. Warum, erklärt dir das freundliche Handbuch.

Grüße,
Dominik

Re: Problem mit Abfrage SELECT DISTINCT DATE_FORMAT(date,"%Y")

am 21.03.2006 09:01:29 von Erik Hastens

"Dominik Echterbruch" wrote in message
news:1142889367.3932.0@damia.uk.clara.net...

> Bitte führe die Abfrage direkt in der Mysql-Konsole aus. Passiert da das
> gleiche?
>
> Ich tippe auf "Nein". Daher vermute ich einen Fehler in deinem Programm

Sehr guter Tip, hab das Statement im PHPMyAdmin direkt eingegeben und da
sieht die Ausgabe wie erwartet aus. Ok, dann werde ich das php-seitig
nachher sicher finden.

> BTW: falls die User-ID numerisch ist, solltest du die Hochkommas außen rum
> weg lassen. Warum, erklärt dir das freundliche Handbuch.

Auch gut, werd ich beachten.

Danke + Gruß
Erik