Hallo,
ich habe ein Tabelle mit Daten, die auch eine Positionsspalte besitzt, nach der die Ausgabe angeordnet wird.
Bsp:
Nun soll Schwein um eins nach oben verschoben werden, so muss die Position von Hase um eines erhöht, die von Schwein um eines erniedrigt werden.
Bekannt ist nur die id von Schwein.
Ich dachte mir folgendes, was jedoch nicht erlaubt ist - liegt wohl an meinen begrenzten MySQL-Kenntnissen (PHP):
Die zweite Abfrage funktioniert, aber mit der ersten habe ich noch so meine MySQL-Artigen-Denk-Probleme...
Wer weiß Rat?
ich habe ein Tabelle mit Daten, die auch eine Positionsspalte besitzt, nach der die Ausgabe angeordnet wird.
Bsp:
Code:
id | tier | position 1 Hund 1 2 Katze 2 3 Hase 3 4 Schwein 4
Bekannt ist nur die id von Schwein.
Ich dachte mir folgendes, was jedoch nicht erlaubt ist - liegt wohl an meinen begrenzten MySQL-Kenntnissen (PHP):
Code:
# erhöhe position um 1 (nach unten verschieben) beim vorgänger, der durch position - 1 bestimmt wird ; voraussetzung: schwein ist nicht bereits an position 1 UPDATE IF(SELECT position FROM tierliste WHERE id = $schwein_id > 1) tierliste SET position = position + 1 WHERE position = (SELECT position - 1 FROM tierliste WHERE id = $schwein_id); # erniedrige entsprechend das schwein nach bekannter id UPDATE tierliste SET position = position - 1 WHERE id = $schwein_id;
Wer weiß Rat?
Comment