在mysql中,如何获得存储在表的列中的varchar值的最大字符数?

qkf9rpyu  于 2021-06-21  发布在  Mysql
关注(0)|答案(3)|浏览(430)

我有一个名为“cities”的表,其中有数千条记录,只有两个字段,即city和state。虽然在我的表中,这两个字段的类型和长度都定义为varchar(100),但我确信列中没有值占用100个字符。我想写一个查询来知道statecolumn的哪个值采用的字符数最多。我试过:

select distinct max(state) from cities;

我知道这不是我想要的。有没有sql函数来完成这个任务?

xxhby3vn

xxhby3vn1#

这个问题是重复的,但我会回答,你应该使用 length() 函数与 max() 我在这里得到的函数:-

select max(length(state)) from cities;
jv4diomz

jv4diomz2#

另一种选择是使用 ORDER BYLIMIT :

SELECT state, CHAR_LENGTH(state) AS length
FROM cities
ORDER BY CHAR_LENGTH(state) DESC
LIMIT 1;

如果有关系,你也希望这些关系,那么我们可以尝试不同的方法。

wswtfjt7

wswtfjt73#

你不需要 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

相关问题