336
SELECT * FROM table ORDER BY string_length(column);

是否有一个 MySQL 函数可以做到这一点(当然不是string_length)?

4

7 回答 7

541

您正在寻找CHAR_LENGTH()获取字符串中的字符数。

对于多字节字符集LENGTH(),将为您提供字符串占用的字节数,同时CHAR_LENGTH()返回字符数。

于 2009-12-09T00:50:40.047 回答
90
SELECT * FROM table 
ORDER BY LENGTH(column);

此处提供了有关该LENGTH()函数以及所有其他字符串函数的文档。

于 2009-12-09T00:51:40.050 回答
30

查看字符串函数的MySQL 文档,我们也可以使用CHAR_LENGTH()and CHARACTER_LENGTH()

于 2013-06-27T08:26:28.377 回答
5

我用来查找字符串长度的函数是length,使用如下:

SELECT * FROM table ORDER BY length(column);
于 2016-08-01T06:18:52.563 回答
4

就我而言,我使用以下查询使用长度大于 10 位的手机号码获取数据

SELECT * FROM table_name WHERE CHAR_LENGTH(mobile) > 10;
于 2021-06-09T06:12:04.857 回答
2

我用这个句子来过滤

SELECT table.field1, table.field2 FROM table WHERE length(field) > 10;

您可以将 10 更改为要过滤的其他数字。

于 2019-09-05T21:29:32.517 回答
-2
select * from *tablename* where 1 having length(*fieldname*)=*fieldlength*

例如,如果您想从客户中选择名称短于 2 个字符的条目。

select * from customer where 1 **having length(name)<2**
于 2019-01-13T10:33:19.443 回答