mysql - 如何获取存储在 MySQL 表的列中的 varchar 值的最大字符数?
问题描述
我有一个名为“city”的表,它有数千条记录,只有两个字段,即 city和state。尽管在我的表中定义为 varchar(100) 的两个字段的类型和长度,但我确信列中的任何值都不会占用 100 个字符。我想编写一个查询来了解state 列的哪个值占用最多的字符数。我试过:
select distinct max(state) from cities;
我知道这不是我想要的查询。是否有任何 SQL 函数来完成此任务?
解决方案
你不需要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
推荐阅读
- r - 分组并保留在不同列中具有最大值的整行
- c++ - static_cast
与 static_cast - python - Django set_language 请求工作但不改变语言
- javascript - 时间为上午 10 点时重新启动倒数计时器,倒数计时器基于数据库中的数据
- spring - 为什么我在创建 keycloak 用户(spring boot)时会收到 http 409?
- woocommerce - woocommerce 产品数据元框中的 Cutsom Checkbox 字段
- flutter - 将整数四舍五入到最接近的千位
- java - 使用springboot在mongodb中进行多个搜索查询
- javascript - TypeError:映射到两个数组时无法读取未定义的属性“id”
- java - 调用一个类“如果”