有没有办法在mysql的where子句中使用像min这样的sql函数作为值?

问题描述

我对 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”附近使用的正确语法

但它不起作用请帮忙

解决方法

我有这个解决方案。我可以使用复杂的 sql 语句通过使用下面的 sql 语句将城市的长度与最小长度相等:

SELECT City,LENGTH(City) FROM Station WHERE LENGTH(City) = (SELECT MIN(LENGTH(City)) FROM Station) ORDER BY City LIMIT 1;

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...