2015-01-10 4 views
2

Я хочу заказать роль членов. Как:База данных Пользовательский порядок сортировки

Leaders 
Co Leaders 
Elders 
Members 

Но когда я использую ORDER BY, он заказывает в соответствии с алфавитом. То есть:

Co Leaders 
Elders 
Leaders 
Members 

Возможно ли такое сортирование?

+2

Добавить 'weigth' поле в таблицу – DarkBee

+1

Просто см FIELD() – Strawberry

ответ

3

Вы можете попробовать ORDER с FIELD:

ORDER BY FIELD(your_field, 'Leaders' , 'Co Leaders', 'Elders', 'Members') 
+1

Это один работает. Благодаря! –

0

Добавить столбец в sort_order int(10) default 0;

Теперь поместите значение как sort_order = 0 где member_role = Leaders, 1 для Co Leaders и еще.

затем ORDER BY sort_order

0

Использования можно также использовать Case statement для обычая заказа.

order by case columnname 
       when 'Leaders' then 1 
       when 'Co Leaders' then 2 
       when 'Elders' then 3 
       when 'Members' then 4 
     End 
+0

Но зачем? – Strawberry

+0

@Strawberry - извините, не понял. –

+0

Какое преимущество это предложение над FIELD() – Strawberry

Смежные вопросы