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

时间:2012-06-04 14:04:40

标签: mysql

示例:

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

WHERE [something]

GROUP BY partnumber, manufacturer, condition

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

我试过这个:

MAX(LENGTH(description)) 

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

5 个答案:

答案 0 :(得分:143)

尝试使用ORDER BY LENGTH(description) DESC并使用LIMIT 1来获取最大值。

答案 1 :(得分:17)

ORDER BY LENGTH(description) DESC LIMIT 1

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

答案 2 :(得分:3)

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`

答案 3 :(得分:0)

似乎我回答了我自己的问题,MAX(描述)似乎工作正常。

答案 4 :(得分:0)

MAX(LENGTH(description))返回“描述”列中最长值的长度。