99

例子:

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

WHERE [something]

GROUP BY partnumber, manufacturer, condition

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

我试过这个:

MAX(LENGTH(description)) 

但是,它返回字符串中的字符数。是否可以在 MySQL 中做我想做的事情?

4

6 回答 6

201

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

于 2012-06-04T14:06:29.240 回答
28
ORDER BY LENGTH(description) DESC LIMIT 1

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

于 2012-12-19T21:34:29.720 回答
5
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`
于 2012-06-04T14:16:45.490 回答
2

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

于 2018-10-17T14:38:35.557 回答
1

如果“描述”包含多个成语字符,那么您应该使用

MAX(CHAR_LENGTH(description))

例如 :

SELECT LENGTH("Это тест, связанный с длиной строки в базе данных")

结果是89。

然而 :

SELECT CHAR_LENGTH("Это тест, связанный с длиной строки в базе данных")

结果是49。

于 2021-11-11T18:37:14.740 回答
0

我找到了解决方案。MAX(description)似乎工作得很好。

于 2012-06-04T14:12:13.580 回答