ChatGPT解决这个技术问题 Extra ChatGPT

MySQL - 如何按字符串长度选择数据

SELECT * FROM table ORDER BY string_length(column);

是否有一个 MySQL 函数来执行此操作(当然不是 string_length)?


L
Larzan

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

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


实际上,CHAR_LENGTH() 应该是更好的选择。对于多字节字符集,LENGTH() 将为您提供字符串占用的字节数,而 CHAR_LENGTH() 将返回字符数。
CHAR_LENGTH 发送整数参数是正确的,因为如果我返回字符数? , 由 ejemlo CHAR_LENGTH(12) 返回 2
@fubo 在 mySQL 8.0 select LENGTH('Ö'); 结果是 1。与 CHAR_LENGTH()OCTET_LENGTH() 相同
A
Avatar
SELECT * FROM table 
ORDER BY LENGTH(column);

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


N
NeverHopeless

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


G
Ganesan J

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

SELECT * FROM table_name WHERE CHAR_LENGTH(mobile) > 10;

F
Flygenring

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

SELECT * FROM table ORDER BY length(column);

J
Jesús Sánchez

我用这个句子来过滤

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

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


F
Faisal
select * from *tablename* where 1 having length(*fieldname*)=*fieldlength*

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

select * from customer where 1 **having length(name)<2**