В MySql вы можете использовать функцию MAX()
для получения максимального значения при использовании GROUP BY
, как я могу сделать то же самое, чтобы получить самую длинную строку текста?
Пример таблицы:
id_|_post_id|_title__________|_body_____________________________________________
1 | ZXBF1J | Favorite Color | My favorite color is blue.
2 | ZXBF1J | Favorite Color | My favorite color is blue, no wait...
3 | ZXBF1J | Favorite Color | My favorite color is blue, no wait, yelloooow!
4 | AR3D47 | Quest | To seek..
5 | AR3D47 | Quest | To seek the Holy
6 | AR3D47 | Quest | To seek the Holy Grail.
Сложная часть состоит в том, что я хочу ORDER BY id ASC
видеть самые старые записи в верхней части, и я хочу сгруппировать по post_id
, который не является чем-то, что я могу использовать для ORDER
, и получить самый длинный body
.
Пример запроса:
SELECT post_id, title, MAX(body) // obviously MAX() doesn't work here
FROM posts
GROUP BY post_id
ORDER BY id ASC
Требуемый вывод:
post_id|_title__________|_body_____________________________________________
ZXBF1J | Favorite Color | My favorite color is blue, no wait, yelloooow!
AR3D47 | Quest | To seek the Holy Grail.
Снова ключ должен выбрать самый длинный body
при сохранении порядка на основе id
.