mysql - SQL中列查询的长度

标签 mysql

我是 SQL 新手,所以问这个问题。

所以我有下表,其中包含名为 Station 的 Id、City、State。

并且我需要查询 STATION 中 CITY 名称最短和最长的两个城市,以及它们各自的长度(即:名称中的字符数)。如果有多个最小或最大的城市,请选择按字母顺序排在第一位的城市。

谁能帮我开始做这件事。我在 city 上尝试了 len() 函数,但它似乎不起作用。

最佳答案

名称最短的城市:

SELECT City, CHAR_LENGTH(City) AS len
FROM STATION
ORDER BY CHAR_LENGTH(City) ASC, City
LIMIT 1

名字最长的城市:

SELECT City, CHAR_LENGTH(City) AS len
FROM STATION
ORDER BY CHAR_LENGTH(City) DESC, City
LIMIT 1

您可以使用 UNION ALL 将它们组合成一个语句:

SELECT *
FROM (
    SELECT City, CHAR_LENGTH(City) AS len
    FROM STATION
    ORDER BY CHAR_LENGTH(City) ASC, City
    LIMIT 1
) shortest 
UNION ALL (
    SELECT City, CHAR_LENGTH(City) AS len
    FROM STATION
    ORDER BY CHAR_LENGTH(City) DESC, City
    LIMIT 1
) longest

关于mysql - SQL中列查询的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36624003/

相关文章:

php - UTF8 mysql编码的数据库字段仅在php页面中显示特殊字符

MySQL STR_TO_DATE() 不适用于 LOAD DATA INFILE

mysql - 如何进行正确的sql查询?

mysql - #1005 - 无法创建表 'hms.doctor'(错误号 : 150)

PHP/MySQL 多个子字符串?

PHP 代码将空记录插入 MySQL 数据库

php&mysql 查找父类别名称

mysql - 使用模式划分列

php - lastinsertId() 和第二个查询插入问题

java - mysql jdbc 驱动程序无法识别 latin1 字符