За последние 24 часа нас посетили 64048 программистов и 1741 робот. Сейчас ищут 819 программистов ...

Упорядочить сортировку

Тема в разделе "MySQL", создана пользователем A41524567, 1 ноя 2014.

  1. A41524567

    A41524567 Активный пользователь

    С нами с:
    31 янв 2013
    Сообщения:
    74
    Симпатии:
    0
    MYSQL, таблица. Есть поле `sorting` - фактический это порядок сортировки разделов.
    Значения этого столбца могут быть произвольными и повторяющимися, но это число всегда.
    Как нормализовать эти значения?
    Скрин - вроде все понятно нарисовал. Всего в реальной таблице 1000-2000 записей.
    [​IMG]

    Верхняя таблица - что есть, нижняя таблица - что хочется получить.
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    order by `sorting` если я правильно понял вопрос
     
  3. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    Тебе надо перенумеровать покрасивее, сохраняя существующий порядок? Слово "нормализовать" в контексте баз данных означает совсем другое.

    Добавлено спустя 3 минуты 37 секунд:
    Помоему вот этот пример как раз для тебя: http://stackoverflow.com/a/4975383/272885
    Если недостаточно, гугли "mysql enumerate rows".
     
  4. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    а, я понял. надо выбрать список значений и идентификаторов и потом итерируя список идентификаторов раздать "нормализованные" значения метрики в виде десятки умноженной на натуральный порядок в массиве.
     
  5. A41524567

    A41524567 Активный пользователь

    С нами с:
    31 янв 2013
    Сообщения:
    74
    Симпатии:
    0
    Ganzal - 1 таблица на скрине order by `sorting` - типо так отсортировали запросом и сделали скрин
    artoodetoo - Слово "нормализовать" - согласен - не в тему совсем. Мне нужно изменить ( окультурить ) цифры - порядок сортировки.
    На верхнем скрине запись id=1596 проблемно сделать третьей по порядку. Глобально - это сортировка разделов из админки сайта. Админ ручками ставит значение `sorting`. Админы на сайте разные бывают......


    artoodetoo - Спасибо за ссылку - покопаю, потом отпишусь

    Добавлено спустя 4 минуты 30 секунд:
    десятка - условно поставил, но устраивает, основное - чтоб можно было новые записи ставить между существущими.
     
  6. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    при вставке можно "двинуть вниз" значения идущие после желаемой метрики вставляемой записи. это один лишний запрос.
    поднять-опустить - тоже одним запросом с условным обновлением.
    то есть совсем не обязательно городить огород с десятками под возможную вставку. и не будет двух одинаковых значений которые к тому же еще нужно понять в каком порядке будут выведены.
     
  7. A41524567

    A41524567 Активный пользователь

    С нами с:
    31 янв 2013
    Сообщения:
    74
    Симпатии:
    0
    Спасибо за ответы, попробую реализовать. О результатах отпишусь. Ближайшие пару дней - точно не буду трогать, просто не успеваю все.