【问题标题】:Filter results by the column length按列长度过滤结果
【发布时间】:2013-12-22 08:22:48
【问题描述】:

我需要从字段必须超过给定长度的查询中过滤一些结果。 我知道这不起作用,但它会是这样的:

SELECT * FROM MyTable WHERE COUNT(description) > 50

这是可行的,还是我以后必须在 PHP 上过滤(在我的情况下)?

【问题讨论】:

  • I know that doesn't work
  • 顺便说一下,WHERE 子句中不能使用聚合函数。您可能会使用 - select * from my_table where length(my_col)>50;
  • @bansi 我会记住这一点的。

标签: mysql sql


【解决方案1】:

鉴于您使用的是 MySQL,您可能正在寻找 LENGTH()

对于标准 SQL,该函数称为LEN()

如果您处理的是 UTF-8,则必须使用 CHAR_LENGTH(),因为 LENGTH() 以字节为单位测量长度,而CHAR_LENGTH() 将正确地以字符为单位测量长度。

【讨论】:

    【解决方案2】:
    SELECT * FROM MyTable WHERE LENGTH(description) < 50
    

    【讨论】:

    • 将 LEN 修改为 LENGTH
    【解决方案3】:

    使用这个查询:

    SELECT * FROM MyTable WHERE LENGTH(description) > 50
    

    阅读更多:LENGTH mysql 中的函数。

    参考:MySQL - How to select data by string length

    【讨论】:

      【解决方案4】:

      试试这个

      SELECT * FROM MyTable WHERE LENGTH(description) > 50
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-14
        • 2021-11-26
        • 2023-04-11
        • 1970-01-01
        • 1970-01-01
        • 2015-03-31
        相关资源
        最近更新 更多