2013-11-25 2 views
5

У нас есть такая таблица в MySQL: id - int; title - varchar; hd - tinyint; источник - tinyint; active - tinyint;Запрос MySQL со сложной сортировкой

Как я могу получить данные из базы данных с такой сортировкой:

1. hd >= 3 AND source <> 5 
2. hd >= 3 AND source = 5 
3. hd = 2 
4. other, i.e. hd < 2 

Пожалуйста, покажите мне, как сделать это правильно и один SQL-запрос?

спасибо.

ответ

6
select * from your_table 
order by case when hd >= 3 AND source <> 5 then 1 
       when hd >= 3 AND source = 5 then 2 
       when hd = 2 then 3 
       else 4 
     end 
4

Попробуйте это:

select * 
from table_name 
order by case when hd >= 3 AND source <> 5 then 1 
       when hd >= 3 AND source = 5 then 2 
       when hd = 2 then 3 
       else 4 
     end 
Смежные вопросы