Coś z tym zapytaniem nadal jest nie tak. Co prawda błędu żadnego nie zwraca, ale źle zmienia te ordery.
Przed wykonaniem zapytania:

Zapytanie:
Kod
UPDATE tabela
SET position = IF (`position` = 4, 1, `position` + SIGN(4- 1))
WHERE position >= LEAST(1, 4) AND position<= GREATEST(1, 4)
Po wykonaniu zapytania:

Jak widać w zapytaniu, chciałem zamienić pozycję czwartą z pierwszą. I prawie się udało bo rekord 4-ty dostał pozycję 1-szą, ale już rekord 1-szy zamiast dostać pozycję 4-tą, dostał pozycję 2-gą. Gdzie leży błąd?