16

如何在 MySQL 表中找到特定列长度最长的字段?

4

4 回答 4

27

MySQL 有很多你可以使用的字符串函数:

SELECT LENGTH(col) as my_len FROM my_table ORDER BY my_len DESC LIMIT 1

更时髦的版本(有效):

SELECT MAX(LENGTH(col)) FROM my_table
于 2010-07-23T14:05:06.247 回答
10

您可以使用 mysql 命令 LENGTH()

<?php 
$q = mysql_query("SELECT LENGTH(yourfield) AS fieldlength FROM yourtable ORDER BY fieldlength DESC LIMIT 1"); 
echo $longestfield = mysql_result($q,0); 
?>
于 2010-07-23T14:03:59.763 回答
4

让表的名称为 tbl1,列的名称为 col1,您试图在其中找到最长的长度值。

方法一:

select col1, length(col1) from tbl1 order by length(col1) desc limit 1

这将返回值以及值的长度。

如果它们只有一行,或者您只想检索长度最长的一行,则上述方法是最好的。如果它们是具有最长长度的多行并且您想要全部检索它们,那么第二种方法将是最好的。

方法二:

select col1, length(col1) from tbl1 where length(col1) in (select max(length(col1)) from tbl1)

这将返回具有最长值的所有行的值和值的长度。

于 2016-08-01T06:13:01.937 回答
3

你可能要考虑CHAR_LENGTH()。与文档的区别:

CHAR_LENGTH(): 返回参数中的字符数

LENGTH(): 返回字符串的长度(以字节为单位)

例如,UTF-8在您的列上使用时,这些函数返回不同的值。

请注意,您为string列设置的长度(例如:)varchar实际上是其字符长度。

于 2016-12-20T12:45:02.347 回答