MySQL SELECT语句的“长度”字段大于1


70

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

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

我该怎么写?

Answers:


130

怎么样:

SELECT * FROM sometable WHERE CHAR_LENGTH(LINK) > 1

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

请注意,我选择CHAR_LENGTH而不是LENGTH,就好像数据中有多字节字符一样,您可能真的对有多少个字符而不是它们占用多少存储字节感兴趣。因此,对于以上内容,将不会返回LINK是单个两字节字符的行,而使用时会返回LENGTH

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


12
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,2009年

3
我认为len()不是有效的MySql函数
ChssPly76

哦,是的,我完全错过了问题的那一部分。我应该删除此答案,因为它根本不相关吗?
艾米(Amy)2009年

2
好吧,因为我一直在寻找T-SQL版本,所以您的回答对我有所帮助,非常感谢!
山姆

自从我寻找MS SQL版本以来,您的回答对我也有帮助。谢谢!
巴克斯特

5

以防万一有人想找到oracle的方式并来到这里(就像我一样),语法是

select length(FIELD) from TABLE

以防万一 ;)


4

尝试:

SELECT
    *
FROM
    YourTable
WHERE
    CHAR_LENGTH(Link) > x
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.