【发布时间】:2011-03-20 03:08:27
【问题描述】:
如何在 MySQL 表中找到特定列长度最长的字段?
【问题讨论】:
-
这个问题似乎离题了,因为它是关于数据库管理的,属于Server Fault 或Database Administrators。
标签: mysql string-length
如何在 MySQL 表中找到特定列长度最长的字段?
【问题讨论】:
标签: mysql string-length
您可以考虑CHAR_LENGTH()。
与documentation的区别:
CHAR_LENGTH(): 返回参数中的字符数
LENGTH(): 返回字符串的长度(以字节为单位)
例如,在您的列上使用UTF-8 时,这些函数会返回不同的值。
请注意,您为 string 列设置的长度(例如:varchar)实际上是其字符长度。
【讨论】:
让表的名称为 tbl1,列的名称为 col1,您试图在其中找到最长的长度值。
方法一:
select col1, length(col1) from tbl1 order by length(col1) desc limit 1
这将返回值以及值的长度。
如果它们只有一行,或者您只想检索长度最长的一行,则上述方法是最好的。如果它们是具有最长长度的多行并且您想要全部检索它们,那么第二种方法将是最好的。
方法2:
select col1, length(col1) from tbl1 where length(col1) in (select 最大(长度(col1))来自 tbl1)
这将返回具有最长值的所有行的值和值的长度。
【讨论】:
MySQL有很多string functions可以使用:
SELECT LENGTH(col) as my_len FROM my_table ORDER BY my_len DESC LIMIT 1
更时髦的版本(有效):
SELECT MAX(LENGTH(col)) FROM my_table
【讨论】:
你可以使用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);
?>
【讨论】: