Изменение порядка строк MySQL

Ответить
Аватара пользователя
ilan

Изменение порядка строк MySQL

Сообщение ilan »

Может кто-нибудь посказать алгоритм (или функцию) для перемещения строки в таблице MySQL на несколько позиций вверх/вниз. Чтобы она именно хранилась с таким id, а не только выводилась.
Аватара пользователя
ilan

Re: Изменение порядка строк MySQL

Сообщение ilan »

Хмммм.... А смысл? По большому счёту клиенту без разницы, в каком именно порядке строки хранятся, ему важно в каком порядке сервер их выдаёт (вообще-то разница есть, но она влияет только на быстродействие сервера). Сделай ID в строках в нужном порядке и используй ORDER BY (select id, field1, field2,... from my_table order by id) - сервер будет выдавать тебе строки в нужном тебе порядке.
Аватара пользователя
ilan

Re: Изменение порядка строк MySQL

Сообщение ilan »

а вот как *
Цитата:



Сделай 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) - то он совпадет с уже существующим (последствия я не знаю).
Аватара пользователя
Megabyte

Re: Изменение порядка строк MySQL

Сообщение Megabyte »

Ну, в зависимости от ограничений, навешанных на таблицу, сервак может позволить существовать двум строкам с одинаковым ID, а может и не позволить (органичение уникальности по ID). Если не даёт - меняешь у строки с ID=2 поле ID на любое неиспользуемое (например 0), потом у строки 4 делаешь ID=2, потом ID=0 меняешь на ID=4. Стандартная задача перестановки двух переменных. Вот SQL-код:



Код:

Код: Выделить всё

update my_table set ID=0 where ID=2;
update my_table set ID=2 where ID=4;
update my_table set ID=4 where ID=0;
Аватара пользователя
ilan

Re: Изменение порядка строк MySQL

Сообщение ilan »

Спасибо.



Именно это мне и нужно было. И еще, похоже, надо будет автоинкремент убрать с поля ID.



видимо надо купить книгу по азам программирования. функции сортировки и все такое. Может, кстати, подскажешь чего-нибудь стоящее?
Аватара пользователя
ilan

Re: Изменение порядка строк MySQL

Сообщение ilan »

Цитата:



И еще, похоже, надо будет автоинкремент убрать с поля ID.



Я провёл опыт - автоинкремент ему не мешает, он только требует уникальности и всё, тот SQL-код для изменения ID-шников прекрасно работает и при автоинкремент не сбивается. Так что можешь его оставить.

А по поводу книг... Сам я учил программирование ещё на Партнёре-0101 и Spectrum-е, сейчас книги по программированию для начинающих не читаю и ничего посоветовать не могу. Но если у тебя есть доступ в Инет, поищи на Яндексе или Гугле что-нибудь типа "программирование для начинающих" или что-нибудь подобное
Ответить

Вернуться в «Вебмастеру»