SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 14.01.2016 21:15:08

serj011
Активист
Зарегистрирован: 22.04.2010
Сообщений: 234

двойная сортировка

Столкнулся с проблемой, которую решить легко было лишь только на первый взгляд(((
Есть вот такой вот запрос

$posts = mysql_num_rows(mysql_query("SELECT * FROM `searchers` WHERE `relevation` <> 0 ORDER BY `relevation` DESC",$db));


он сортирует по полю relevation, но если значение этого поля в разных записях равна одинаковому числу (например 2), то с каждым новым построением, запрос чередует для вывода эти записи с одинаковым значением.

Нужно что бы эти записи при выводе "не прыгали", а выводились всегда одинаково...

В таблице есть поле id, я попробовал добавить в запросе ORDER BY `relevation`, `id` DESC, но теперь сортировка проходит не только по максимальному `relevation`, а и по максимальному `id`

Т.е. записи с максимальным `relevation` должны быть вверху, а они переплетаются с ORDER BY `id` DESC и не всегда находятся вверху.

Неактивен

 

#2 14.01.2016 21:59:56

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: двойная сортировка

Описанное вами поведение странное. Скорее всего сортировка идет по возрастанию `relevation`. Приведите пример результат сортировки и попробуйте так:

ORDER BY `relevation` DESC, `id` DESC

Неактивен

 

#3 14.01.2016 22:09:56

serj011
Активист
Зарегистрирован: 22.04.2010
Сообщений: 234

Re: двойная сортировка

rgbeast, в таком исполнении все работает как надо, спасибо большое)))

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson