Rückgabe des Datensatzes mit dem Längsten Feldinhalt
Rückgabe des Datensatzes mit dem Längsten Feldinhalt
am 23.06.2006 22:15:13 von nosse
Hallo,
bis jetzt hatte ich immer nur einfache SQL-Abfragen mit denen ich gut
klar gekommen bin. Nun suche ich aber etwa, wo ich noch keinen Ansatz habe.
Was habe ich:
Ich habe eine kleine MySQL(4.1) Datenbank mit u.a. der Tabelle
Kommentare. In dieser Tabelle gibt es u.a. Felder für Benutzer, Test,
Zeit ... und Ergebnis.
Was möchte ich:
Ich möchte mir für einen bestimmten Test den Datensatz ausgeben lassen
der im Feld Ergebnis die meisten Zeichen stehen hat.
Der Anfang:
Select Benutzer, ... Test, Ergebnis from Kommentare where Test='Alpha7'
Wie bekomme ich das nun mit dem längsten Feld Ergebnis hin ?
Danke füre eure Hilfe.
Gruß,
Matthias Noßmann
Re: Rückgabe des Datensatzes mit dem Längsten Feldinhalt
am 23.06.2006 22:57:04 von ascii158
Matthias Noßmann wrote:
Moin,
> Was möchte ich:
>
> Ich möchte mir für einen bestimmten Test den Datensatz ausgeben lassen
> der im Feld Ergebnis die meisten Zeichen stehen hat.
>
> Der Anfang:
>
> Select Benutzer, ... Test, Ergebnis from Kommentare where Test='Alpha7'
AND LENGTH(Ergebnis)=(SELECT MAX(LENGTH(Ergebnis)) FROM Kommentare);
Grüße,
--
Philipp Tölke
PGP 0x96A1FE7A
Re: Rückgabe des Datensatzes mit dem Längsten Feldinhalt
am 24.06.2006 01:40:18 von nosse
Hallo,
Philipp Tölke schrieb:
> Matthias Noßmann wrote:
>> Was möchte ich:
>>
>> Ich möchte mir für einen bestimmten Test den Datensatz ausgeben lassen
>> der im Feld Ergebnis die meisten Zeichen stehen hat.
>>
>> Der Anfang:
>>
>> Select Benutzer, ... Test, Ergebnis from Kommentare where Test='Alpha7'
>
> AND LENGTH(Ergebnis)=(SELECT MAX(LENGTH(Ergebnis)) FROM Kommentare);
Danke für die schnelle Antwort.
Beim probieren habe ich bemerkt, das ich etwas wichtiges vergessen habe.
Die Werte im Feld Test sind dynamisch.
z.B.
Benutzer Test Ergebnis
b1 T1 83
b1 T1 832849294898924
b2 T1 6344
b3 T2 3240399
b1 T3 21
b4 T3 6547658
b2 T3 46587
Ergebnis soll nun sein:
Benutzer Test Ergebnis
b1 T1 832849294898924
b3 T2 3240399
b4 T3 6547658
Also sollen alle Datensätze für einen Test gesucht werden und dann der
ausgegeben werden mit dem längsten Ergebenis --> 1. Datensatz
Dann den nächsten Test suchen, wieder den Datensatz mit dem längsten
Ergebnis und diesen ausgeben. --> 2. Datensatz
Select Benutzer, .... Test, Ergebnis from Kommentare order by test ....
where test= ??? AND LENGTH(Ergebnis)=(SELECT MAX(LENGTH(Ergebnis)) FROM
Kommentare);
Danke für jede Hilfe.
Gruß,
Matthias
Re: Rückgabe des Datensatzes mit dem Längsten Feldinhalt
am 24.06.2006 09:51:42 von ascii158
Matthias Noßmann wrote:
> Hallo,
>
> Philipp Tölke schrieb:
>> Matthias Noßmann wrote:
>>> Was möchte ich:
>>>
>>> Ich möchte mir für einen bestimmten Test den Datensatz ausgeben lassen
>>> der im Feld Ergebnis die meisten Zeichen stehen hat.
>>>
>>> Der Anfang:
>>>
>>> Select Benutzer, ... Test, Ergebnis from Kommentare where Test='Alpha7'
>>
>> AND LENGTH(Ergebnis)=(SELECT MAX(LENGTH(Ergebnis)) FROM Kommentare);
>
> Danke für die schnelle Antwort.
> Beim probieren habe ich bemerkt, das ich etwas wichtiges vergessen habe.
>
> [...]
>
> Also sollen alle Datensätze für einen Test gesucht werden und dann der
> ausgegeben werden mit dem längsten Ergebenis --> 1. Datensatz
> Dann den nächsten Test suchen, wieder den Datensatz mit dem längsten
> Ergebnis und diesen ausgeben. --> 2. Datensatz
SELECT Test, MAX(LENGTH(Ergebnis)) FROM Kommentare GROUP BY Test
Grüße,
--
Philipp Tölke
PGP 0x96A1FE7A