Изменение порядка строк MySQL
-
ilan
Изменение порядка строк MySQL
Может кто-нибудь посказать алгоритм (или функцию) для перемещения строки в таблице MySQL на несколько позиций вверх/вниз. Чтобы она именно хранилась с таким id, а не только выводилась.
-
ilan
Re: Изменение порядка строк MySQL
Хмммм.... А смысл? По большому счёту клиенту без разницы, в каком именно порядке строки хранятся, ему важно в каком порядке сервер их выдаёт (вообще-то разница есть, но она влияет только на быстродействие сервера). Сделай ID в строках в нужном порядке и используй ORDER BY (select id, field1, field2,... from my_table order by id) - сервер будет выдавать тебе строки в нужном тебе порядке.
-
ilan
Re: Изменение порядка строк MySQL
а вот как *
Цитата:
Сделай 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 в строках в нужном порядке
? я, собственно про это и спросил....
Пример: Нужно чтобы строка с данными 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
Ну, в зависимости от ограничений, навешанных на таблицу, сервак может позволить существовать двум строкам с одинаковым 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
Спасибо.
Именно это мне и нужно было. И еще, похоже, надо будет автоинкремент убрать с поля ID.
видимо надо купить книгу по азам программирования. функции сортировки и все такое. Может, кстати, подскажешь чего-нибудь стоящее?
Именно это мне и нужно было. И еще, похоже, надо будет автоинкремент убрать с поля ID.
видимо надо купить книгу по азам программирования. функции сортировки и все такое. Может, кстати, подскажешь чего-нибудь стоящее?
-
ilan
Re: Изменение порядка строк MySQL
Цитата:
И еще, похоже, надо будет автоинкремент убрать с поля ID.
Я провёл опыт - автоинкремент ему не мешает, он только требует уникальности и всё, тот SQL-код для изменения ID-шников прекрасно работает и при автоинкремент не сбивается. Так что можешь его оставить.
А по поводу книг... Сам я учил программирование ещё на Партнёре-0101 и Spectrum-е, сейчас книги по программированию для начинающих не читаю и ничего посоветовать не могу. Но если у тебя есть доступ в Инет, поищи на Яндексе или Гугле что-нибудь типа "программирование для начинающих" или что-нибудь подобное
И еще, похоже, надо будет автоинкремент убрать с поля ID.
Я провёл опыт - автоинкремент ему не мешает, он только требует уникальности и всё, тот SQL-код для изменения ID-шников прекрасно работает и при автоинкремент не сбивается. Так что можешь его оставить.
А по поводу книг... Сам я учил программирование ещё на Партнёре-0101 и Spectrum-е, сейчас книги по программированию для начинающих не читаю и ничего посоветовать не могу. Но если у тебя есть доступ в Инет, поищи на Яндексе или Гугле что-нибудь типа "программирование для начинающих" или что-нибудь подобное