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