Eu tenho esta tabela:
SELECT * FROM items
id | item | position
---|-----------|----------
1 | USB cable | 0
2 | SD card | 4
3 | Mouse | 2
4 | Keyboard | 0
5 | Monitor | 3
A classificação desta tabela fornece este resultado:
SELECT * FROM items ORDER BY position
id | item | position
---|-----------|----------
4 | Keyboard | 0
1 | USB cable | 0
3 | Mouse | 2
5 | Monitor | 3
2 | SD card | 4
Agora quero atualizar a tabela e salvar a ordem na coluna de posição:
SELECT * FROM items
id | item | position
---|-----------|----------
4 | Keyboard | 1
1 | USB cable | 2
3 | Mouse | 3
5 | Monitor | 4
2 | SD card | 5
Isso pode ser feito com uma única consulta ou tenho que repetir manualmente todas as linhas e fazer uma atualização manual?
Caso o pedido não esteja totalmente definido (por exemplo, para cabo USB e teclado acima), decidi arbitrariamente o pedido.