mark_edinoroglove
@mark_edinoroglove

Как сделать сортировку таблицы mysql?

Здравствуйте, делаю таблицу игроков сервера, есть роли - Начальник, администратор, игрок, как можно отсортировать таблицу так чтобы сначала выводились все игроки имеющие роль начальник, потом администратор, а потом игрок?
  • Вопрос задан
  • 71 просмотр
Решения вопроса 1
rozhnev
@rozhnev
Fullstack programmer, DBA, медленно, дорого
Один из возможных вариантов:
select 
	* ,
	case 
		when role = 'boss' then 3
		when role = 'admin' then 2
		else 1
	end as weight
from gamers order by weight desc;


MySQL fiddle

или так:
select * 
from gamers 
order by role = 'boss' desc, role = 'admin' desc;


MariaDB fiddle
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Если это роли, то обычно они хранятся в отдельной таблице ролей, связанные через таблицу связей пользователь-роль. Соответственно можете добавить поле sort в таблицу ролей, и при объединении будете сортировать по этому полю.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
7skills Ижевск
от 120 000 до 150 000 ₽
от 140 000 до 170 000 ₽
07 мар. 2021, в 23:34
5000 руб./за проект
07 мар. 2021, в 23:14
10000 руб./за проект