Moin!
Nö, du musst nur zwei Zahlen austauschen, so wie du die Position von zwei Datensätzen gegeneinander tauschst. Das sind genau zwei UPDATE-Statements, wenn du noch einen eindeutigen, sich nicht ändernden Anfasser (ID) pro Datensatz hast.
Nein, das kann man auch in einem UPDATE hinkriegen, sofern es sich beim Sortierkriterium um Integer-Zahlen handelt.
Wenn A und B die Platznummern sind, die getauscht werden sollen:
UPDATE tabelle SET platz = (A + B) - platz WHERE platz IN (A, B);
Für A und B sind die Integerwerte einzusetzen, die man getauscht haben will, und die Summenbildung darf auch außerhalb des Querys erfolgen.
- Sven Rautenberg