Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Сортировка
 
 автор: wallress   (18.10.2008 в 16:17)   письмо автору
 
 

Здравствуйте
Есть поле int, со значениями от '1' до '10' в возрастающем порядке
Мне нужно получить результат:
Число из середины списка, например '3' сделать последним, переименовать в '10',
а оставшимуся ряду 1,2,4,5,6,7,8...дать новые значения 1,2,3,4,5,6,7...

Помогите пожалуйста...

  Ответить  
 
 автор: Trianon   (18.10.2008 в 16:35)   письмо автору
 
   для: wallress   (18.10.2008 в 16:17)
 

строки в таблице лежат внавал без какого-либо наперед гарантированного порядка.
Поэтому фраза "Есть поле int, со значениями от '1' до '10' в возрастающем порядке" смысла не имеет.

  Ответить  
 
 автор: wallress   (18.10.2008 в 16:55)   письмо автору
 
   для: Trianon   (18.10.2008 в 16:35)
 

[code]
id number type color

12 1 as red
45 2 sd green
..........................................
65 10 ва blue
/code]

id primary key, строки которые 'отключаются' пререносятся на последнюю позицию по полю number, а остальные должны должны выстроится в ряд...
Ну кто-то ушел передо мной из очереди, я был девятым а стал восьмым, восьмой седьмым...

  Ответить  
 
 автор: Trianon   (18.10.2008 в 17:18)   письмо автору
 
   для: wallress   (18.10.2008 в 16:55)
 

Обмен номеров 2-й и 10-й строк:
UPDATE tbl SET number = 2+10-number WHERE number IN (2, 10)

смещение номеров с 3 по 9
UPDATE tbl SET number = number-1  WHERE number BETWEEN 3 AND 9

  Ответить  
 
 автор: wallress   (18.10.2008 в 17:47)   письмо автору
 
   для: Trianon   (18.10.2008 в 17:18)
 

Большое спасибо))
Вот еще вариант:
UPDATE tables SET number = IF(number=3, 10, IF(number>3, number-1, number))
Работает...

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования