首页 > 解决方案 > 如何获取存储在 MySQL 表的列中的 varchar 值的最大字符数?

问题描述

我有一个名为“city”的表它有数千条记录,只有两个字段,即 citystate。尽管在我的表中定义为 varchar(100) 的两个字段的类型和长度,但我确信列中的任何值都不会占用 100 个字符。我想编写一个查询来了解state 的哪个值占用最多的字符数。我试过:

select distinct max(state) from cities;

我知道这不是我想要的查询。是否有任何 SQL 函数来完成此任务?

标签: mysql

解决方案


你不需要distinct;只有一个最大长度。

要返回具有最长值的状态:

select state
from cities
where length(state) = (select max(length(state)) from cities)

————

这些查询可能更有帮助...

要返回所有状态及其长度,其长度大于某个长度(例如 10):

select state, length(state)
from cities
where length(state) > 10
order by 2 desc

要返回最长的 10 个州名及其长度:

select state, length(state)
from cities
order by 2 desc
limit 10

推荐阅读