Anne Schenker: SQL: mehrere Spalten abfragen neben min()

Beitrag lesen

Hallo,

ich frage folgendermaßen eine sortierreihenfolge aus meienr Datenabnk ab:

SELECT min(sortierreihenfolge) AS naechste_sortierreihenfolge
FROM inhalt
WHERE sortierreihenfolge > $aktuelle_sortierreihenfolge
LIMIT 1

nun benötoge ich aber auch noch die ID des Datensatzes.
Ich hab es so versucht:

SELECT min(sortierreihenfolge) AS naechste_sortierreihenfolge, id
FROM inhalt
WHERE sortierreihenfolge > $aktuelle_sortierreihenfolge
LIMIT 1

Dies funktioniert aber nicht. Ich bekomme immer eine Fehlermeldung:

Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no GROUP columns is illegal if there is no GROUP BY clause

daraufhin hab ich es dann so versucht:

SELECT min(sortierreihenfolge) AS naechste_sortierreihenfolge, id
FROM inhalt
WHERE sortierreihenfolge > $aktuelle_sortierreihenfolge
GROUP BY id ASC
LIMIT 1

Jetzt funktioniert zwar der Query, allerdings bekomm ich nicht immer den nächst höheren Wert.

Bspl.:

meine Tabelle hat folgende Werte in sortierreihenfolge:

1
2
3
4
5

Definiere ich die Varibale wie folgt:

$aktuelle_sortierreihenfolge = 1
-> 2 (richtig)

$aktuelle_sortierreihenfolge = 2
-> 4 (FALSCH)

$aktuelle_sortierreihenfolge = 3
-> 4 (richtig)

$aktuelle_sortierreihenfolge = 4
-> 5 (richtig)

Was mache ich falsch? Wie muss es richtig heissen?

Vielen lieben Dank

Anne