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

  • Автор темы Автор темы knyazev
  • Дата начала Дата начала

knyazev

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

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

id
1
2
3
4
...

Например, я удаляю строку с id=3.
Как мне начиная со сдедующей строки(после удаленной), уменьшить все значения id на 1, до конца таблицы.
 
Автор оригинала: Necromant
UPDATE new SET id = id-1 WHERE id>3
Спасибо

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


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


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

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

Например, нужно изменит id=3 на id=4, и наобарот. Но когда мы изменим 3 на 4, у нас получится две четверки. И соответственно при изменении на 3, они изменятся обе, в итоге получиться два id=3.
 
перечитай еще раз ссылку, которую тебе дали.
 
knyazev
думаю ты пишеш вывод списка и для
красоты нумеруешь выводимы записи.
Проше
$query = 'select * from tablica order by id';
$result = @bdGetRezault($query);
$n=0;
while($row = mysql_fetch_array($result)) {
$n++;
echo " $n ) ".$row["name"];
}
 
knyazev
зачем тебе менять местами строки ?
 
knyazev, в реляционных базах данных такое понятие как порядок строк (записей) или столбцов (полей) не имеет никакого информационного смысла. Отсюда следует, что выражение "поменять строки местами" также не имеет никакого смысла, ВООБЩЕ.
 
knyazev
Заведи ещё одно поле, в котором храни число, по которому ты собираешься упорядочивать записи.
И делай по нему потом order by.
 
Сверху