【发布时间】:2021-04-28 07:02:45
【问题描述】:
我的 mysql 语句有问题...答案是从一个名为 station 的表中获取城市的名称和最小长度的城市长度,该表按城市名称的字母顺序排列我尝试了一些如下所述的语句.
SELECT City, LENGTH(City) FROM Station ORDER BY City WHERE LENGTH(City) = MIN(LENGTH(City));
我也尝试过使用用户定义的变量,如下所示:
SELECT @min := MIN(LENGTH(City)) FROM Station ORDER BY City;
SELECT City, LENGTH(City) FROM Station ORDER BY City WHERE LENGTH(City) = @min;
样本输出:Amo 3
它显示此错误:查看与您的 MySQL 服务器版本相对应的手册,以了解在 'WHERE LENGTH(City) = @min' 附近使用的正确语法
但它不起作用请帮助
【问题讨论】:
-
欢迎来到 SO。请参阅Why should I provide an MCRE for what seems to me to be a very simple SQL query - 并注意您可能需要 CHAR_LENGTH。
-
我认为你不能在 where 之前使用 order by。
-
@Strawberry 我不明白你想说什么我已经提供了带有示例输出的代码我应该为你提供 mysql 表数据,因为我是新来的。
-
链接问题的接受答案对我来说似乎不言自明:-(
-
@shazyriver 我尝试使用 order by after where 但它在第 1 行显示 ERROR 1111 (HY000): Invalid use of group function
标签: mysql sql conditional-statements where-clause min