За последние 24 часа нас посетили 29837 программистов и 1759 роботов. Сейчас ищут 933 программиста ...

Позиции в списке

Тема в разделе "MySQL", создана пользователем bFree, 10 окт 2009.

  1. bFree

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

    С нами с:
    17 авг 2008
    Сообщения:
    81
    Симпатии:
    0
    Для примера есть табица:
    Код (Text):
    1.  
    2. --------------------------
    3. | id | name | position |
    4. --------------------------
    5. | 1 | test | 1 |
    6. | 2 | test 2 | 3 |
    7. | 3 | test 3 | 2 |
    Предположим, что это пункты меню.
    Как можно, например, проинсертить новую запись, с position = 2 так, чтобы "сдвинулись" позиции у всех необходимых записей? С апдейтом тоже самое.
     
  2. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Я не понял, replace что ли?
     
  3. bFree

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

    С нами с:
    17 авг 2008
    Сообщения:
    81
    Симпатии:
    0
    Возможно.
    Ну я хочу вставить запись с name = 'test 5' и position = 2, тогда у 'test 2' и 'test 3' position должен стать равным postion + 1
     
  4. Simpliest

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

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Ну так и делай два запроса

    сначала смещай нужные записи вниз

    [sql]UPDATE postion = position +1 WHERE postion>=2[/sql]

    потом вставляй запись на осовободившееся место