Помогите м сортировкой БД

Статус
В этой теме нельзя размещать новые ответы.

stasdre

Постоялец
Регистрация
15 Янв 2010
Сообщения
125
Реакции
18
Есть таблица с заказами и вней есть поле `Status` - статус заказов, может принимать значения 1,2,3 или 4. Проблема в следующем: например есть 3 заказа со статусом 1, 2 co статусом 4 и 2 заказа со статусом 3:
Код:
id   Name       Status
1    Заказ 1     1
2    Заказ 2     1
3    Заказ 3     1
4    Заказ 4     4 
5    Заказ 5     4
6    Заказ 6     3
7    Заказ 7     3
Как можно отсортировать такую таблицу по статусам. Если по статусу 1 то можно написать ORDER BY Status, если по статусу 4 то ORDER BY Status DESC
Как можно отсортировать по статусу 3? Так чтобы зыказы были в таком порядке:
Код:
Status
3
3
1
1
1
4
4
Подскажите кто знает как такое можно реализовать?:thenks:
 
чисто на sql врядли такое сделаешь, потому что ты изначально сортируешь не по статусу, а по каким то внутреним критериям. Да и вопрос не особо понятен.

Как можно отсортировать по статусу 3?
Select * From table_name WHERE Status = 3 ORDER BY Status
Для статуса 4
Select * From table_name WHERE Status = 4 ORDER BY Status DESC
 
чисто на sql врядли такое сделаешь, потому что ты изначально сортируешь не по статусу, а по каким то внутреним критериям. Да и вопрос не особо понятен.
Select * From table_name WHERE Status = 3 ORDER BY Status
Для статуса 4
Select * From table_name WHERE Status = 4 ORDER BY Status DESC


ну и JOIN натянуть на все это. не?
 
Код:
Status
3
3
1
1
1
4
4

вопрос действительно не понятен, видимо нужен определённый порядок статусов . т.к. у тебя их всего 4 то можешь использовать union, для твоего примера будет так :
Select * From table_name WHERE Status = 3
union all
Select * From table_name WHERE Status = 1
union all
Select * From table_name WHERE Status = 4
 
Вроде бы все понятно объяснил в итоге после запроса строки БД должны сортироваться в следующем порядке (по полю Status:(

Код:
id   Name       Status
6    Заказ 6     3
7    Заказ 7     3
1    Заказ 1     1
2    Заказ 2     1
3    Заказ 3     1
4    Заказ 4     4 
5    Заказ 5     4

Т.е. в нвчале идут строки со статусом 3 потом 4 и затем 1. Или например вот так:

Код:
id   Name       Status
4    Заказ 4     4 
5    Заказ 5     4
1    Заказ 1     1
2    Заказ 2     1
3    Заказ 3     1
6    Заказ 6     3
7    Заказ 7     3
 
Код:
SELECT * FROM zakazy ORDER BY Status=3 DESC, Status=1 DESC, Status=4 DESC, Status
 
есть 100 способов это сделать.

Например, создай таблицу сортировки статусов.
sttus_sort
Status Sort
1 20
2 30
3 10
4 40

И пиши
select t.*
from table_name t,
status_sort ss
where t.status = ss.status
order by ss.sort

Есть таблица с заказами и вней есть поле `Status` - статус заказов, может принимать значения 1,2,3 или 4. Проблема в следующем: например есть 3 заказа со статусом 1, 2 co статусом 4 и 2 заказа со статусом 3:
Код:
id   Name       Status
1    Заказ 1     1
2    Заказ 2     1
3    Заказ 3     1
4    Заказ 4     4 
5    Заказ 5     4
6    Заказ 6     3
7    Заказ 7     3
Как можно отсортировать такую таблицу по статусам. Если по статусу 1 то можно написать ORDER BY Status, если по статусу 4 то ORDER BY Status DESC
Как можно отсортировать по статусу 3? Так чтобы зыказы были в таком порядке:
Код:
Status
3
3
1
1
1
4
4
Подскажите кто знает как такое можно реализовать?:thenks:
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху