2010-07-23 65 views
10

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

+0

这个问题似乎是题外话题,因为它是关于数据库管理,属于[服务器故障](http://www.serverfault.com)或[dba.se]。 – 2013-08-12 21:45:46

回答

10

您可以使用mysql命令长度()

<?php 
$q = mysql_query("SELECT LENGTH(yourfield) AS fieldlength FROM yourtable ORDER BY fieldlength DESC LIMIT 1"); 
echo $longestfield = mysql_result($q,0); 
?> 
+6

如果没有额外的PHP代码,答案会更好,所以人们可以快速查看查询。 – 2015-10-07 15:40:18

14

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 
1

设表的名称为tbl1,列的名称为col1,其中您尝试查找最长的le ngth值。

方法1:

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

这将返回值,并且还对值的长度。

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

方法2:

选择COL1,长度(COL1)从TBL1其中长度(COL1)在(选择 MAX(长度(从TBL1 COL1)))

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

2

你可能想考虑CHAR_LENGTH()。从documentation 差异:

CHAR_LENGTH():返回字符数在参数

LENGTH():在你的柱上使用UTF-8时返回字符串的长度以字节为单位

例如,这些函数返回不同的值。

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