Изменить значение в записях БД
Есть 5 записей в таблице users (sort, name)
SORT | NAME
1 Андрей
2 Денис
3 Игорь
4 Максим
5 Сергей
Через PHP я их вывожу по порядку (по sort). Но, теперь мне нужно добавить Александра после Игоря. То есть, придётся в дальнейшем добавлять записи МЕЖДУ уже существующими, чтобы они выводились не в конце, а в средине. Что сделать в таком случае? Как я понимаю, нужно переопределить sort всех записей, которые будут после Александра? Получается: Игорь - 3, Александр (новая запись) - уже 4, Максим - уже не 4, а 5, Сергей - соответственно 6.
Но, как это сделать? Как изменить sort (на один больше) всех нижеследующих после Александра записей?
Ответы (1 шт):
Автор решения: Akina
→ Ссылка
-- раздвигаем
UPDATE users
SET sort = sort + 1
WHERE sort > ( SELECT sort
FROM users
WHERE name = 'Игорь' );
-- и вставляем
INSERT INTO users (sort, name)
SELECT sort + 1, 'Александр'
FROM users
WHERE name = 'Игорь';