MySQL选择语句用于字段“长度”大于1

85

我在我的表中有一个 LINK 字段,有些行有链接,有些行没有。

我想选择所有 LINK 存在的行(长度大于 X 个字符)。

我应该如何编写代码呢?


什么是LINK字段?你的意思是指一种名为“LINK”的文本/varchar字段吗? - Ben Wheeler
4个回答

163

这样怎么样:

SELECT * FROM sometable WHERE CHAR_LENGTH(LINK) > 1

这是MySql字符串函数页面(5.0)。

请注意,我选择了CHAR_LENGTH而不是LENGTH,因为如果数据中有多字节字符,您可能真正关心的是有多少个字符,而不是它们占用了多少存储字节。因此,在上面的示例中,如果LINK是一个单独的双字节字符,则不会返回该行-但使用LENGTH时会返回该行。

请注意,如果LINKNULL,则CHAR_LENGTH(LINK)的结果也将是NULL,因此该行将不匹配。


16
select * from [tbl] where [link] is not null and len([link]) > 1

针对MySQL用户:

LENGTH([link]) > 1

1
“[identifier]”语法只被MS SQL——SQL Server和Access(据我所知)使用。这个问题是关于MySQL的。 - dcrosta
3
我认为len()不是一个有效的MySql函数。 - ChssPly76
哦,是的,我完全忽略了问题的那一部分。我应该删除这个答案,因为它根本不相关吗? - user47589

7

尝试:

SELECT
    *
FROM
    YourTable
WHERE
    CHAR_LENGTH(Link) > x

7

如果有人想在 Oracle 中找到并来到这里(就像我一样),语法是:

select length(FIELD) from TABLE

以防万一 ;)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接