В этой таблице есть столбец с именем 'position'.Этот столбец отсчитывает от 0. (Первая строка имеет позицию 0, вторая имеет 1 и т. Д.)
Теперь, если строка с позицией 4 перемещается вверх, я хочу установить строку выше (строка с позицией 3) в текущую позицию.(Таким образом, позиция 3 становится позицией 4.)
Так, например:
У меня есть:
id = 12, position = 2
id = 11, position = 3
id = 9, position = 4
id = 8, position = 5
После обновления я хочу:
id = 12, position = 2
id = 11, position = 4
id = 9, position = 3
id = 8, position = 5
Я хочу использовать идентификатор строки, чтобы обновить позицию.
Это то, что у меня есть, но это не работает на MySQL:
UPDATE message
SET position = position + 1
WHERE position = (SELECT position - 1 FROM message WHERE id = 11);
КогдаЯ пытаюсь запустить его, он выдает мне эту ошибку: «Ошибка SQL (1093): вы не можете указать целевую таблицу« message »для обновления в предложении FROM».
Как я могу это исправить?