如何在分组时从表中选择最长的"字符串"

use*_*827 82 mysql

例:

SELECT partnumber, manufacturer, condition, SUM(qty), AVG(price), description FROM parts

WHERE [something]

GROUP BY partnumber, manufacturer, condition
Run Code Online (Sandbox Code Playgroud)

我有一些空白的描述,并且可以有许多partnumber,制造商,条件值,并且在组中它似乎采用第一个描述,可以是空白.我想获得最长的描述.

我试过这个:

MAX(LENGTH(description)) 
Run Code Online (Sandbox Code Playgroud)

但是,它返回字符串中的字符数.是否有可能在MySQL中尝试做什么?

Sti*_*sis 161

尝试ORDER BY LENGTH(description) DESC并使用LIMIT 1只获得最大的.


小智 22

ORDER BY LENGTH(description) DESC LIMIT 1
Run Code Online (Sandbox Code Playgroud)

这会将结果从最长到最短排序并给出第一个结果(最长).


egg*_*yal 6

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`
Run Code Online (Sandbox Code Playgroud)