пересчет индексов

knyazev

Новичок
пересчет индексов

Есть база данных. :)
Есть столбец id c индексами страниц.

id
1
2
3
4
...

Например, я удаляю строку с id=3.
Как мне начиная со сдедующей строки(после удаленной), уменьшить все значения id на 1, до конца таблицы.
 

knyazev

Новичок
Автор оригинала: Necromant
UPDATE new SET id = id-1 WHERE id>3
Спасибо

это не читал ещё ???
Спасибо за ссылочку.


---------------------


И еще вопросик:

как мне поменять id двух строк между собой? Т.е. все остается на месте, меняются только их id.

Например, нужно изменит id=3 на id=4, и наобарот. Но когда мы изменим 3 на 4, у нас получится две четверки. И соответственно при изменении на 3, они изменятся обе, в итоге получиться два id=3.
 

Demiurg

Guest
перечитай еще раз ссылку, которую тебе дали.
 

antson

Новичок
Партнер клуба
knyazev
думаю ты пишеш вывод списка и для
красоты нумеруешь выводимы записи.
Проше
$query = 'select * from tablica order by id';
$result = @bdGetRezault($query);
$n=0;
while($row = mysql_fetch_array($result)) {
$n++;
echo " $n ) ".$row["name"];
}
 

Demiurg

Guest
knyazev
зачем тебе менять местами строки ?
 

Bermuda

Новичок
knyazev, в реляционных базах данных такое понятие как порядок строк (записей) или столбцов (полей) не имеет никакого информационного смысла. Отсюда следует, что выражение "поменять строки местами" также не имеет никакого смысла, ВООБЩЕ.
 

ForJest

- свежая кровь
knyazev
Заведи ещё одно поле, в котором храни число, по которому ты собираешься упорядочивать записи.
И делай по нему потом order by.
 
Сверху