从数据库中按字符串长度选择行

37

有没有一种方法可以选择那些给定值长度为特定长度的数据库表行,例如小于5个字符?

在PHP中,可以使用strlen函数实现。

MySQL中是否有类似的功能?

2个回答

79
SELECT * FROM table_name WHERE CHAR_LENGTH(column_name) < 5

1
所有的MySQL字符串函数都在这里:http://dev.mysql.com/doc/refman/5.0/en/string-functions.html -- 尽情享受吧! - Benj
3
所有编程书籍、算法和数学内容都在这里 - http://google.com。你还喜欢吗? - Arthur Kushman
@ArthurKushman 我认为你在没有发现任何讽刺的情况下进行了推断。 - Matt Aikens

9

LENGTH("my_string") 返回一个字符串的长度(以字节为单位)

SELECT * FROM table_name WHERE LENGTH(column_name) < 5

请记住,字符可能由多个字节组成,例如UTF-8编码。


会因为多字节字符而崩溃。 - Derek Prior
@Derek 谢谢,我添加了澄清。我的答案提到它返回字节长度,而字符可能是多字节的。 - Timo Huovinen
是的,但在现实世界中,这几乎没有用(没有 mb 检查)。 - Arthur Kushman
1
@zeusakm 这就是为什么我们有另一个答案!现在我们知道两种方法。 - Timo Huovinen

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