Форум программистов, компьютерный форум, киберфорум
MySQL
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 19.08.2014
Сообщений: 77
1

Mysql сортировка?

09.10.2015, 16:12. Показов 338. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, подскажите пожалуйста, есть таблица такого вида:
id name order
1 test1 1
2 test2 2
3 test3 3
4 test4 4

возможно ли средствами mysql отсортировать в базе (т.е не select, а update) order у первой строки сдвинуть в конец, а остальным убавить на 1?
т.е в результате должно быть
id name order
1 test1 4
2 test2 1
3 test3 2
4 test4 3

спасибо
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.10.2015, 16:12
Ответы с готовыми решениями:

Сортировка русских символов в mysql
Почему-то как то очень странно работает сортировка по строкам из русских символов вот так...

MySQL, Hilfe! Сортировка по алфавиту
Ау, просмотрела я архив форума, но нужного ответа так и не нашла. Есть у меня подозрение, что...

Ошбка Can't connect to local MySQL server through socket '/tmp/mysql.sock' (11)
Есть сервер с mysql - если клиенты присоединятся к серверу БД через TCP/IP, то всё отлично и сервер...

Mysql error 1146 table doesn't exist в MySQL Workbench 8.0 CE
Здравствуйте ребят! Возникла следующая проблема, создал я таблицу под транзакции, ввел данные...

2
Модератор
4217 / 3058 / 583
Регистрация: 21.01.2011
Сообщений: 13,205
09.10.2015, 16:20 2
Цитата Сообщение от MrMens2
возможно ли средствами mysql отсортировать в базе (т.е не select, а update)
В реляционных БД нет понятия "порядок строк". В каком порядке располагать строки - внутреннее дело СУБД. В Oracle, например, обычные таблицы называются heap organization (это значение по умолчанию в CREATE TABLE), т.е. в виде кучи. Поэтому сортировку задают ТОЛЬКО при выводе с пом. ORDER BY
0
411 / 365 / 142
Регистрация: 09.04.2011
Сообщений: 1,051
09.10.2015, 21:46 3
если речь идет не про порядок строк, а про update колонки, у которой минимальное значение должно стать максимальным, а остальные уменьшиться на 1, то

MySQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
select * from test;
+----+-------+-------+
| id | name  | order |
+----+-------+-------+
|  1 | test1 |     1 |
|  2 | test2 |     2 |
|  3 | test3 |     3 |
|  4 | test4 |     4 |
+----+-------+-------+
 
update test,
(select id, name, if(`order` = @mi,@ma,`order`-1) `order`
from test, (select @ma:=(select max(`order`) from test)) x, (select @mi:=(select min(`order`) from test)) y) t1
set test.`order`=t1.`order`
where test.id=t1.id;
 
select * from test;
+----+-------+-------+
| id | name  | order |
+----+-------+-------+
|  1 | test1 |     4 |
|  2 | test2 |     1 |
|  3 | test3 |     2 |
|  4 | test4 |     3 |
+----+-------+-------+
0
09.10.2015, 21:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.10.2015, 21:46
Помогаю со студенческими работами здесь

Cannot create windows service for mysql. Erro 0. И, Host 'localhost' is not allowed to connect to this mysql server
Здравствуйте! Переустановил Windows 7, Service Pack 1. Устанавливаю MySQL 5.5.60-winx64. Никогда...

MySQL. Windows 7. Пропадает служба MySQL при перезагрузке.
Вот собственно сабж. Подскажите как это поправить. Windows 7/Apache/PHP/ MySQL 5.5. Просмотрел...

Java.sql.SQLException: No suitable driver found for com.mysql.jdbc:mysql://localhost:3306/log
Пол дня просидел, и так, и сяк пробовал, никак. Eclipse EE public static void main(String args) {...

Mysql "ERROR 2003 HY000" После завершения процесса mysql.exe
Покапался в деспетчере и завершил процесс mysql.exe. при попытке перезапустить его через Command...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru