mysql中的max(length(field))

JPr*_*Pro 81 mysql sql

如果我说:

select max(length(Name)) 
  from my_table
Run Code Online (Sandbox Code Playgroud)

我得到结果为18,但我也想要有关数据.所以,如果我说:

select max(length(Name)), 
       Name 
  from my_table
Run Code Online (Sandbox Code Playgroud)

...这是行不通的.应该有一个自我加入,我想我无法弄明白.

谁能请我提供线索?

Qua*_*noi 152

SELECT  name, LENGTH(name) AS mlen
FROM    mytable
ORDER BY
        mlen DESC
LIMIT 1
Run Code Online (Sandbox Code Playgroud)


cjo*_*ohn 14

已编辑,将适用于未知的max()值:

select name, length( name )
from my_table
where length( name ) = ( select max( length( name ) ) from my_table );
Run Code Online (Sandbox Code Playgroud)


小智 6

如果您需要同一个表中的最大值和最小值:

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


Vel*_*nov 6

好的,我不确定你在用什么(MySQL,SLQ服务器,Oracle,MS Access ..)但你可以尝试下面的代码.它适用于W3School示例DB.这里 试试这个:

SELECT city, max(length(city)) FROM Customers;
Run Code Online (Sandbox Code Playgroud)

  • 与mysql;“这与 sql_mode=only_full_group_by 不兼容” (3认同)