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

有帮助吗?

解决方案 2

可以使用mysql命令长度()

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

其他提示

mysql有很多字符串函数您可以使用:

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

更多Funky版本(它有效):

SELECT MAX(LENGTH(col)) FROM my_table
.

你可能想考虑 CHAR_LENGTH()。与的差异 文档:

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

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

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

并注意您设置的长度 string 列(例如: varchar) 实际上是它的字符长度。

允许表的名称是tbl1,列的名称是您尝试找到最长值的col1。

方法1:

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

这将返回值和值的长度。

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

方法2:

从TBL1中选择COL1,长度(COL1),其中长度(col1)中(选择 max(长度(col1))从tbl1)

这将返回一个值以及具有最长值的所有行的值的长度。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top