Как выбрать самую длинную строку из таблицы при объединении
пример:
SELECT partnumber, manufacturer, condition, SUM(qty), AVG(price), description FROM parts
WHERE [something]
GROUP BY partnumber, manufacturer, condition
у меня есть несколько пустых описаний, и может быть много значений partnumber, manufacturer, condition, а в группе, похоже, есть первое доступное описание, которое может быть пустым. Id хотел бы получить самое длинное описание доступно.
Я попытался это:
MAX(LENGTH(description))
однако это возвращает количество символов в строке. Можно ли сделать то, что я пытаюсь сделать в MySQL?
4 ответа:
попробовать
ORDER BY LENGTH(description) DESC
и использоватьLIMIT 1
чтобы получить только самый большой.
ORDER BY LENGTH(description) DESC LIMIT 1
это сортирует результаты от самого длинного до самого короткого и дает первый результат (самый длинный.)
SELECT partnumber, manufacturer, `condition`, SUM(qty), AVG(price), description FROM parts WHERE [something] AND LENGTH(description) = ( SELECT MAX(LENGTH(description)) FROM parts AS p WHERE p.partnumber = parts.partnumber AND p.manufacturer = parts.manufacturer AND p.condition = parts.condition ) GROUP BY partnumber, manufacturer, `condition`