Приветствую. У меня есть таблица - id, sort_id, name id / sort_id / name 66 / 10 / name 1 65 / 9 / name 2 64 / 8 / name 3 63 / 7 / name 4 62 / 6 / name 5 61 / 5 / name 6 60 / 4 / name 7 59 / 3 / name 8 58 / 2 / name 9 57 / 1 / name 10 В таблице может быть максимум 10 значений. При добавлении новой записи, самая верхняя запись (sort_id = 1) должна удаляться, а новой записи присуждается sort_id = 10, т.е все записи перемещаются на ступень пониже. Собственно как грамотно реализовать смещение записей? Глупо пройтись циклом по массиву как то не красиво) Возможно есть более лучший метод? Спасибо!
удаляешь первую запись, вставляешь новую, в заспросе дописываешь ORDER BY DESC и они сортируются в обратном порядке, еслия правильно понял
Можно попробовать так, но за результат не ручаюсь. [sql]DELETE FROM `table` WHERE `sort_id` = 1; UPDATE `table` SET `sort_id` = `sort_id` - 1; INSERT INTO `table` (`sort_id`, `name`) VALUES (10, 'name 1');[/sql]
Re: правильно отсортировать записи в таблице после запроса в Нумерация в стеке начиная с 1 обязательное условие? Если нет, от Update можно избавиться.
Oliver если к данной задаче нет дополнительных условий, то всё делается проще. колонка sort_id не нужна, удаление записей не нужно, обновление - тоже. вставляешь новую запись, и выбираешь только последние 10 добавленных записей: SELECT * FROM `table` ORDER BY id DESC LIMIT 10