Вывод из group by с order by

333
15 декабря 2017, 04:28

Здравствуйте, связался с такой проблемой, вывожу из базы

select * from mess where idUser='1' GROUP BY gripname ORDER BY id DESC

Он группирует, все выводит, но единственное, он не выводит их в порядке последний id - первый id (ORDER BY id DESC). Помогите исправить данную проблему.

Answer 1

В сортировке в данном случае нет смысла. Не стоит использовать в select ничего кроме поля по которому вы группируете и агрегатных функций. Например postgresql запретит вам ваш запрос, и будет права.

В качестве варианта вы может использовать что-то типа:

select max(id), gripname from mess where idUser='1' GROUP BY gripname ORDER BY max(id) DESC

В запросе выше СУБД отсортирует значения по максимальному id попавшему в группировку. Например, есть у вас база со значениями:

id=1, gripname=a
id=4, gripname=b
id=5, gripname=a

Ответом будет вывод:

id=5, gripname=a
id=4, gripname=b
READ ALSO
Редирект с URL на файл в папке

Редирект с URL на файл в папке

Есть самописная cms на php, и сверстаная страничкаНужно по url http://hostname

270
reCAPTCHA ответ

reCAPTCHA ответ

Всем привет, вопрос в ответе сервера GoogleПерерыл все что можно но ответа не нашел

262
Расширение php не работает

Расширение php не работает

Установил расширение https://githubcom/c9s/xarray

308
VK API | PHP | Callback

VK API | PHP | Callback

Ребят извините может зря ну блин В чем ошибка кода

250