Mysql 如何从同一个表中查询城市名称以及最小城市名称的长度

Mysql 如何从同一个表中查询城市名称以及最小城市名称的长度,mysql,sql,select,sql-order-by,greatest-n-per-group,Mysql,Sql,Select,Sql Order By,Greatest N Per Group,我的代码是这样的,但给出了错误,不知道为什么。请帮忙 select city, min(length(city)) from station group by length(city)=min(length(city)) order by city asc; 如果您只想要名称最短的城市,您可以简单地orderby和limit: select city, char_length(city) city_length from station order by city_len

我的代码是这样的,但给出了错误,不知道为什么。请帮忙

select city, 
       min(length(city)) 
from station 
group by length(city)=min(length(city)) 
order by city asc;

如果您只想要名称最短的城市,您可以简单地
orderby
limit

select city, char_length(city) city_length
from station
order by city_length
limit 1
这只返回一行。另一方面,如果希望允许底部连接,则可以使用子查询进行筛选,如下所示:

select city, char_length(city) city_length
from station
where char_length(city) = (select min(char_length(city)) from station)

错误是?错误是:group FUNCTION的使用无效也许可以解释一下您试图用group by语句实现什么?看起来你把GROUP BY和WHERE语句混在一起了多亏了这些见解,我终于把代码弄对了:按城市顺序按最小asc限制1从车站组中选择城市,最小(长度(城市));