Max Funktion
am 25.01.2006 15:40:09 von Oliver Benning
Hallo,
ich möchte eine Spalte x aus dem zuletzt eingefügtem Datensatz (also der
mit der höchsten Auto-Inkrement-ID) selektieren.
SELECT x FROM test HAVING y = max(y);
Jetzt meckert MySQL (4.1) natürlich, daß er 'y' nicht erkennt, also
nehme ich es in SELECT x, y ... auf und nun kommt zwar kein Fehler mehr,
aber ein leeres Ergebnis. Hab für max(y) auch schon einen Alias
eingesetzt, bringt aber auch nichts.
Wie geht es richtig?
Gruß,
Oliver
Re: Max Funktion
am 25.01.2006 15:50:43 von Guy Walter
Oliver Benning wrote:
> Hallo,
>
> ich möchte eine Spalte x aus dem zuletzt eingefügtem Datensatz (also der
> mit der höchsten Auto-Inkrement-ID) selektieren.
>
> SELECT x FROM test HAVING y = max(y);
>
> Jetzt meckert MySQL (4.1) natürlich, daß er 'y' nicht erkennt, also
> nehme ich es in SELECT x, y ... auf und nun kommt zwar kein Fehler mehr,
> aber ein leeres Ergebnis. Hab für max(y) auch schon einen Alias
> eingesetzt, bringt aber auch nichts.
>
> Wie geht es richtig?
>
> Gruß,
> Oliver
>
Versuch doch mal:
SELECT x
FROM test
WHERE y = (SELECT MAX(y) FROM test)
Re: Max Funktion
am 25.01.2006 15:51:48 von Hartmut Holzgraefe
Oliver Benning wrote:
> ich möchte eine Spalte x aus dem zuletzt eingefügtem Datensatz (als=
o der=20
> mit der höchsten Auto-Inkrement-ID) selektieren.
>=20
> SELECT x FROM test HAVING y =3D max(y);
SELECT x FROM test ORDER BY y DESC LIMIT 1;
--=20
Hartmut Holzgraefe, Senior Support Engineer .
MySQL AB, www.mysql.com
http://www.mysql.com/support/
Re: Max Funktion
am 25.01.2006 15:52:48 von Christian Kirsch
Oliver Benning schrieb:
> Hallo,
>
> ich möchte eine Spalte x aus dem zuletzt eingefügtem Datensatz (also der
> mit der höchsten Auto-Inkrement-ID) selektieren.
>
> SELECT x FROM test HAVING y = max(y);
>
Bist Du sicher, dass Du nicht LAST_INSERT_ID() benutzen willst?
Re: Max Funktion
am 25.01.2006 17:29:12 von Hartmut Holzgraefe
Christian Kirsch wrote:
>> ich möchte eine Spalte x aus dem zuletzt eingefügtem Datensatz (al=
so der=20
>> mit der höchsten Auto-Inkrement-ID) selektieren.
>>
>> SELECT x FROM test HAVING y =3D max(y);
>>
>=20
> Bist Du sicher, dass Du nicht LAST_INSERT_ID() benutzen willst?
war auch meine erste Vermutung, aber bei genauerem Hinsehen scheint
das Auslesen unabhängig vom Einfügen zu sein ... sonst wäre x ja eh=
noch bekannt
--=20
Hartmut Holzgraefe, Senior Support Engineer .
MySQL AB, www.mysql.com
http://www.mysql.com/support/