【发布时间】:2010-12-24 15:56:27
【问题描述】:
SELECT * FROM table ORDER BY string_length(column);
是否有一个 MySQL 函数可以做到这一点(当然不是 string_length)?
【问题讨论】:
标签: mysql select string-length
SELECT * FROM table ORDER BY string_length(column);
是否有一个 MySQL 函数可以做到这一点(当然不是 string_length)?
【问题讨论】:
标签: mysql select string-length
您正在寻找CHAR_LENGTH() 来获取字符串中的字符数。
对于多字节字符集,LENGTH() 将为您提供字符串占用的字节数,而CHAR_LENGTH() 将返回字符数。
【讨论】:
CHAR_LENGTH发送整数参数是正确的,因为如果我返回字符数? , 由 CHAR_LENGTH(12) 返回 2
select LENGTH('Ö'); 结果是 1。与CHAR_LENGTH()、OCTET_LENGTH() 相同
SELECT * FROM table
ORDER BY LENGTH(column);
LENGTH() 函数以及所有其他字符串函数的文档可在 here 获得。
【讨论】:
查看MySQL documentation 的字符串函数,我们也可以使用CHAR_LENGTH() 和CHARACTER_LENGTH()。
【讨论】:
我用来查找字符串长度的函数是length,使用如下:
SELECT * FROM table ORDER BY length(column);
【讨论】:
在我的情况下,我使用以下查询使用长度大于 10 位的手机号码获取数据
SELECT * FROM table_name WHERE CHAR_LENGTH(mobile) > 10;
【讨论】:
我用这句话过滤
SELECT table.field1, table.field2 FROM table WHERE length(field) > 10;
您可以将 10 更改为要过滤的其他数字。
【讨论】:
select * from *tablename* where 1 having length(*fieldname*)=*fieldlength*
例如,如果您想从客户中选择名称短于 2 个字符的条目。
select * from customer where 1 **having length(name)<2**
【讨论】: