[sql] mysql의 max (length (field))

내가 말하면 :

select max(length(Name))
  from my_table

결과는 18이지만 관련 데이터도 원합니다. 그래서 내가 말하면 :

select max(length(Name)),
       Name
  from my_table

…작동하지 않습니다. 내가 알아낼 수없는 자기 조인이 있어야한다.

누구든지 나에게 단서를 줄 수 있습니까?



답변

SELECT  name, LENGTH(name) AS mlen
FROM    mytable
ORDER BY
        mlen DESC
LIMIT 1


답변

수정 됨, 알 수없는 max () 값에 대해 작동합니다.

select name, length( name )
from my_table
where length( name ) = ( select max( length( name ) ) from my_table );


답변

좋아, 무엇을 사용하고 있는지 잘 모르겠지만 (MySQL, SLQ Server, Oracle, MS Access ..) 아래 코드를 시도해 볼 수 있습니다. W3School 예제 DB에서 작동합니다. 여기에
이것을 시도하십시오 :

SELECT city, max(length(city)) FROM Customers;


답변

사용하다:

  SELECT mt.name
    FROM MY_TABLE mt
GROUP BY mt.name
  HAVING MAX(LENGTH(mt.name)) = 18

… 사전에 길이를 알고 있다고 가정합니다. 그렇지 않은 경우 다음을 사용하십시오.

  SELECT mt.name
    FROM MY_TABLE mt
    JOIN (SELECT MAX(LENGTH(x.name) AS max_length
            FROM MY_TABLE x) y ON y.max_length = LENGTH(mt.name)


답변

Select URColumnName From URTableName Where length(URColumnName ) IN
(Select max(length(URColumnName)) From URTableName);

이것은 최대 길이를 가진 특정 열의 레코드를 제공합니다.


답변

동일한 테이블에서 최대 및 최소가 모두 필요한 경우 :

    select * from (
(select city, length(city) as maxlen from station
order by maxlen desc limit 1)
union
(select city, length(city) as minlen from station
order by minlen,city limit 1))a;


답변

select *
from my_table
where length( Name ) = (
      select max( length( Name ) )
      from my_table
      limit 1
);

이것은 두 개의 테이블 스캔을 포함하므로 그리 빠르지 않을 수 있습니다!