![]() |
Может кто-нибудь посказать алгоритм (или функцию) для перемещения строки в таблице MySQL на несколько позиций вверх/вниз. Чтобы она именно хранилась с таким id, а не только выводилась.
|
Хмммм.... А смысл? По большому счёту клиенту без разницы, в каком именно порядке строки хранятся, ему важно в каком порядке сервер их выдаёт (вообще-то разница есть, но она влияет только на быстродействие сервера). Сделай ID в строках в нужном порядке и используй ORDER BY (select id, field1, field2,... from my_table order by id) - сервер будет выдавать тебе строки в нужном тебе порядке.
|
а вот как *
Цитата:
Пример: Нужно чтобы строка с данными test1 * * test2 выводилась второй. всегда. id * *field_1 * field_2 1 data1 data2 2 * * data1 * *data2 3 * * data1 * *data2 4 * * test1 * * test2 5 * * data1 * *data2 Если у одной строки меняешь ID (допустим 4 на 2) - то он совпадет с уже существующим (последствия я не знаю). |
Ну, в зависимости от ограничений, навешанных на таблицу, сервак может позволить существовать двум строкам с одинаковым ID, а может и не позволить (органичение уникальности по ID). Если не даёт - меняешь у строки с ID=2 поле ID на любое неиспользуемое (например 0), потом у строки 4 делаешь ID=2, потом ID=0 меняешь на ID=4. Стандартная задача перестановки двух переменных. Вот SQL-код:
Код:
update my_table set ID=0 where ID=2; |
Спасибо.
Именно это мне и нужно было. И еще, похоже, надо будет автоинкремент убрать с поля ID. видимо надо купить книгу по азам программирования. функции сортировки и все такое. Может, кстати, подскажешь чего-нибудь стоящее? |
Цитата:
А по поводу книг... Сам я учил программирование ещё на Партнёре-0101 и Spectrum-е, сейчас книги по программированию для начинающих не читаю и ничего посоветовать не могу. Но если у тебя есть доступ в Инет, поищи на Яндексе или Гугле что-нибудь типа "программирование для начинающих" или что-нибудь подобное |
Время: 18:26. |
Время: 18:26.
© OSzone.net 2001-