У меня есть эта таблица:
+------+----------+
| id | position |
+------+----------+
| 1 | 38 |
+------+----------+
| 5 | 102 |
+------+----------+
| 12 | 112 |
+------+----------+
| 13 | 142 |
+------+----------+
И хотите «перебалансировать» столбец позиции следующим образом
+------+----------+
| id | position |
+------+----------+
| 1 | 0 | (i=0 * 128)
+------+----------+
| 5 | 128 | (i=1 * 128)
+------+----------+
| 12 | 256 | (i=2 * 128)
+------+----------+
| 13 | 384 | (i=3 * 128)
+------+----------+
Я также распределил позиции по спискам следующим образом:
+------+---------------------+
| id | list_id | position |
+------+---------------------+
| 1 | 1 | 10 |
+------+---------------------+
| 5 | 1 | 22 |
+------+----------+----------+
| 12 | 2 | 8 |
+------+----------+----------+
| 13 | 2 | 18 |
+------+----------+----------+
Я думаю, что мне нужно знать индекс текущего элемента в операторе обновления SQL или, возможно, использовать подзапрос?
Как бы вы поступили так?