【问题标题】:Finding field with longest length in a column查找列中长度最长的字段
【发布时间】:2011-03-20 03:08:27
【问题描述】:

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

【问题讨论】:

标签: mysql string-length


【解决方案1】:

您可以考虑CHAR_LENGTH()。 与documentation的区别:

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

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

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

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

【讨论】:

    【解决方案2】:

    让表的名称为 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)

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

    【讨论】:

      【解决方案3】:

      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
      

      【讨论】:

        【解决方案4】:

        你可以使用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); 
        ?>
        

        【讨论】:

        • 如果没有额外的 PHP 代码,答案会更好,因此人们可以快速查看查询。
        猜你喜欢
        • 2011-03-22
        • 1970-01-01
        • 1970-01-01
        • 2020-04-14
        • 1970-01-01
        • 2014-12-11
        • 1970-01-01
        • 1970-01-01
        • 2016-08-11
        相关资源
        最近更新 更多