2014-11-13 2 views
0

У меня есть таблица вроде этого:Заказать Mysql двумя колоннами

id  |date  |publisher 
1  2014-11-07 100 
2  2014-11-07 0 
3  2014-11-07 100 
4  2014-11-06 0 
5  2014-11-06 100 
6  2014-11-05 100 
7  2014-11-05 0 
8  2014-11-05 0 
9  2014-11-05 100 

Я пытаюсь получить результат, как этот:

1  2014-11-07 100 
3  2014-11-07 100 
2  2014-11-07 0 
4  2014-11-06 100 
5  2014-11-06 0 
6  2014-11-05 100 
9  2014-11-05 100 
8  2014-11-05 0 
7  2014-11-05 100 

SO Я пытаюсь отсортировать данные в таблице, дата публикации и сохранить ВСЕГДА значения издателя сверху на каждый день, когда я получил это до сих пор:

select * from articles 
order by publisher DESC, date DESC 

Я получаю этот результат:

1  2014-11-07 100 
3  2014-11-07 100 
5  2014-11-06 100 
6  2014-11-05 100 
9  2014-11-05 100 
2  2014-11-07 0 
4  2014-11-06 0 
7  2014-11-05 0 
8  2014-11-05 0 

Что неправильно ....

+11

переворачивать 'ORDER BY' в' ORDER BY DESC Дата, издатель DESC' – cmorrissey

+0

В результате вы хотите получить, дата 05 имеет 100 в последний ряд ... ??? Но ваша потребность походит на Desc по дате тогда Desc по стоимости правильно? Если это так ..? Затем используйте заказы в соответствии с рекомендациями @cmorrissey ... В противном случае уточните вашу потребность –

+0

yep Я попробовал заказ в обоих направлениях, имеет тот же результат ....: o – Tomazi

ответ

1

Вы должны инвертировать порядок порядка по полю, как это:

select * from articles 
order by date DESC, publisher DESC 

заказ по статье заботиться о порядке поля. В этом запросе мы указываем: порядок по дате в порядке desc и если две или более даты равны, примените дальнейший заказ издателя в порядке desc.

EDIT Как я и обещал, перейти к Sql Fiddle

+0

Эй, спасибо за помощь, но это не работает, он имеет тот же эффект – Tomazi

+0

Дорогой, не возможно. Извините, но Sql Fiddle сегодня не работает, когда скрипт Sql поднимается, я создаю свой результирующий набор с моим запросом. –

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