如何在 MySQL 表中找到特定列长度最长的字段?
问问题
20746 次
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 回答