SQL: mehrere Spalten abfragen neben min()
Anne Schenker
- datenbank
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
Nachtrag:
lasse ich mir nur das min() asugeben, funktioniert alles. Ich brauche aber auch die ID des Datensatzes, damit ich diesen später eindeutig ansprechen und ändern kann.
Vielen Grüße
Anne
»Hat sich erledigt. Ich hab das ganze auch ohne min() hinbekommen