Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Можна ли использовать DESC в ORDER BY / 16 сообщений из 16, страница 1 из 1
12.06.2015, 17:12:29
    #38983025
Vano34
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можна ли использовать DESC в ORDER BY
Можна ли так?
Код: sql
1.
SELECT * FROM `mailbox` WHERE user_id = 1 GROUP BY (interlocutor_id) DESC;
...
Рейтинг: 0 / 0
12.06.2015, 18:29:38
    #38983059
Vano34
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можна ли использовать DESC в ORDER BY
Я имею ввиду, ДЕСК дает самые последние записи?
Нет - не дает. Он лишь сортирует уже готовый результат.
...
Рейтинг: 0 / 0
12.06.2015, 19:25:56
    #38983071
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можна ли использовать DESC в ORDER BY
"груп бай ... деск"? Это фича версии 6.0?
...
Рейтинг: 0 / 0
12.06.2015, 20:43:58
    #38983094
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можна ли использовать DESC в ORDER BY
Vano34,

Да, можно. Только скобки не нужны.
...
Рейтинг: 0 / 0
16.06.2015, 18:50:06
    #38985170
Vano34
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можна ли использовать DESC в ORDER BY
miksoft,

Можно то да), но к сожалению оно не дает мне самые последние записи :(
...
Рейтинг: 0 / 0
16.06.2015, 18:52:40
    #38985175
Vano34
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можна ли использовать DESC в ORDER BY
Vano34,

то-есть! не дописал - с ORDER BY id DESC
...
Рейтинг: 0 / 0
16.06.2015, 18:54:57
    #38985180
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можна ли использовать DESC в ORDER BY
Vano34miksoft,

Можно то да), но к сожалению оно не дает мне самые последние записи :(Последние внутри группы или после группировки? GROUP BY сортирует результат после группировки. Если в пределах группы какое-то поле имеет разные значения, то в результате может оказаться любое из них.

Подозреваю, что вам нужна сортировка в пределах группы. Тогда см. FAQ: Выборка первой/последней записи в группах .
...
Рейтинг: 0 / 0
16.06.2015, 18:55:08
    #38985181
Vano34
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можна ли использовать DESC в ORDER BY
miksoft,

Код: sql
1.
SELECT * FROM `mailbox` WHERE user_id = 1 GROUP BY (interlocutor_id) DESC ORDER BY id DESC;

Вот этот запрос не дает последних записей, а дает первые попавшиеся по пути оптимизированного - наибыстрого прохождения мускула по базе данных
...
Рейтинг: 0 / 0
16.06.2015, 18:55:19
    #38985182
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можна ли использовать DESC в ORDER BY
Vano34Vano34,

то-есть! не дописал - с ORDER BY id DESCORDER BY тоже сортирует после группировки.
...
Рейтинг: 0 / 0
18.06.2015, 16:33:30
    #38987135
Vano34
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можна ли использовать DESC в ORDER BY
miksoft,

Та мне не сортировка нужна, а выборка последних записей. ОрдерБай не выбирает последние, а только сортирует готовый результат
...
Рейтинг: 0 / 0
18.06.2015, 16:37:36
    #38987139
Vano34
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можна ли использовать DESC в ORDER BY
Vano34,

авторПодозреваю, что вам нужна сортировка в пределах группы. Тогда см. FAQ: Выборка первой/последней записи в группах.
Вот эт щас попробую
...
Рейтинг: 0 / 0
18.06.2015, 17:17:22
    #38987194
Vano34
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можна ли использовать DESC в ORDER BY
miksoft,

Для моей задачи проще всего написать так:
Код: plsql
1.
2.
SELECT * FROM `mailbox` WHERE id IN (
SELECT max(id) FROM `mailbox` WHERE user_id = 5 GROUP BY interlocutor_id);


Но в таком случае я не могу добавить LIMIT и OFFSET, а мне надо подгружать по 10 последних разговоров + к тому же, количество прочтенных рядов умножается на ого-го сколько - то-есть такая выборка не правильная.

Если интересно, буду рад помощи. Выкладываю структуры таблиц.

Код: plsql
1.
id | theme | text | creation_date

- Таблица сообщений
Код: plsql
1.
id | message_id | user_id | interlocutor_id | inbox

- таблица почтовых ящиков, там еще поля типа "прочтено", "в корзине", "удалено",

При создании сообщения(юзер 1 отправляет письмо юзеру 2), создаются 2 записи в почтовом ящике, одна принадлежит "Отправителю" (user_id 1, inbox 0, interlocutor_id 2) другая - "Принимателю" (user_id 2, inbox 1, interlcutor_id 1). Где инбокс 1 значит входящее, 0 - исходящее.

И вот задача: нужен список разговоров, то-есть список юзеров с кем разговаривал этот юзер с последними сообщениями(как на вконтакте - разговоры), плюс это все надо сделать с пагинацией.
...
Рейтинг: 0 / 0
18.06.2015, 17:50:08
    #38987239
Vano34
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можна ли использовать DESC в ORDER BY
Vano34,

Я могу делать 2 отдельных запроса, тогда вроде и быстро работает, и понятнее. Но в идеале нужен один.
...
Рейтинг: 0 / 0
18.06.2015, 19:42:43
    #38987307
Vano34
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можна ли использовать DESC в ORDER BY
Vano34,

Хммм... походу я нашел революционное решение. Так сказать обманка, логически по коду фиг поймешь пока не пропишешь таблицу(вернее таблицы созданные ключами) на бумаге.

Добавить связанный индекс (user_id, interlocutor_id). И запрос типа:
Код: plsql
1.
2.
SELECT * FROM `mailbox`
WHERE user_id = 5 GROUP BY interlocutor_id DESC ORDER BY id DESC


- дает мне нужный результат. Вот только еще затестю, когда допишу формы, ато вручную через БД добавлять муторно, и отпишусь.
...
Рейтинг: 0 / 0
18.06.2015, 19:49:24
    #38987308
Vano34
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можна ли использовать DESC в ORDER BY
Vano34,

ну ORDER BY id DESC То мне нужен(он в принципе не важен)
...
Рейтинг: 0 / 0
19.06.2015, 16:28:32
    #38988309
Alex_Ustinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можна ли использовать DESC в ORDER BY
перечитал в пятый раз топик, и сдается мне что вам нужно это - FAQ: Выборка первой/последней записи в группах
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Можна ли использовать DESC в ORDER BY / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]