MYSQL, таблица. Есть поле `sorting` - фактический это порядок сортировки разделов. Значения этого столбца могут быть произвольными и повторяющимися, но это число всегда. Как нормализовать эти значения? Скрин - вроде все понятно нарисовал. Всего в реальной таблице 1000-2000 записей. Верхняя таблица - что есть, нижняя таблица - что хочется получить.
Тебе надо перенумеровать покрасивее, сохраняя существующий порядок? Слово "нормализовать" в контексте баз данных означает совсем другое. Добавлено спустя 3 минуты 37 секунд: Помоему вот этот пример как раз для тебя: http://stackoverflow.com/a/4975383/272885 Если недостаточно, гугли "mysql enumerate rows".
а, я понял. надо выбрать список значений и идентификаторов и потом итерируя список идентификаторов раздать "нормализованные" значения метрики в виде десятки умноженной на натуральный порядок в массиве.
Ganzal - 1 таблица на скрине order by `sorting` - типо так отсортировали запросом и сделали скрин artoodetoo - Слово "нормализовать" - согласен - не в тему совсем. Мне нужно изменить ( окультурить ) цифры - порядок сортировки. На верхнем скрине запись id=1596 проблемно сделать третьей по порядку. Глобально - это сортировка разделов из админки сайта. Админ ручками ставит значение `sorting`. Админы на сайте разные бывают...... artoodetoo - Спасибо за ссылку - покопаю, потом отпишусь Добавлено спустя 4 минуты 30 секунд: десятка - условно поставил, но устраивает, основное - чтоб можно было новые записи ставить между существущими.
при вставке можно "двинуть вниз" значения идущие после желаемой метрики вставляемой записи. это один лишний запрос. поднять-опустить - тоже одним запросом с условным обновлением. то есть совсем не обязательно городить огород с десятками под возможную вставку. и не будет двух одинаковых значений которые к тому же еще нужно понять в каком порядке будут выведены.
Спасибо за ответы, попробую реализовать. О результатах отпишусь. Ближайшие пару дней - точно не буду трогать, просто не успеваю все.