Gustl: mySql-DB Positionskampf

Beitrag lesen

~~~sql

UPDATE bildinfo

SET pos = pos + 1           -- Alle Einträge
  WHERE pos BETWEEN 5 AND 25  -- zwischen 5 und 25 (25 ist nicht mehr belegt :-))
                              -- rutschen eins runter

  

> Du musst auswerten, ob der Eintrag nach oben (wie im Beispiel) oder nach unten verschoben wird und entsprechend reagieren. Hier kannst Du ganz normal mit bedingter Ausführung arbeiten wie in anderen Programmiersprachen auch.  
  

> Freundliche Grüße  
>   
> Vinzenz  
  
Also Vinzenz, meine Idee mit dem Komma-Zwischenwert ist mist, hast recht :)  
  
So also:  
  
setze alte\_pos 25 auf 0 .  
  
ist alte\_pos 25 und neue\_pos 5, also neue\_pos < alte\_pos rechne ich pos = pos + 1 zwischen alte\_pos und neue\_pos .  
  
setze 0 auf neue\_pos 5 .  
  
Und umgekehrt:  
  
setze alte\_pos 5 auf 0 .  
  
ist alte\_pos 5 und neue\_pos 25, also neue\_pos > alte\_pos rechne ich pos = pos - 1 zwischen zwischen alte\_pos und neue\_pos .  
  
setze 0 auf neue\_pos 25 .  
  
Hab ichs nun gefressen ?  
  
Grüsse Gustl