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 に答える