ChatGPT解决这个技术问题 Extra ChatGPT

MySQL - How to select data by string length

SELECT * FROM table ORDER BY string_length(column);

Is there a MySQL function to do this (of course instead of string_length)?


L
Larzan

You are looking for CHAR_LENGTH() to get the number of characters in a string.

For multi-byte charsets LENGTH() will give you the number of bytes the string occupies, while CHAR_LENGTH() will return the number of characters.


Actually, CHAR_LENGTH() should be a better choice. For multi-byte charsets LENGTH() will give you the number of bytes the string occupies, while CHAR_LENGTH() will return the number of characters.
It is correct to send an integer parameter to CHAR_LENGTH, since if I return the number of characters ? , por ejemplo CHAR_LENGTH(12) return 2
@fubo in mySQL 8.0 select LENGTH('Ö'); result is 1. same with CHAR_LENGTH(), OCTET_LENGTH()
A
Avatar
SELECT * FROM table 
ORDER BY LENGTH(column);

Documentation on the LENGTH() function, as well as all the other string functions, is available here.


N
NeverHopeless

Having a look at MySQL documentation for the string functions, we can also use CHAR_LENGTH() and CHARACTER_LENGTH() as well.


G
Ganesan J

In my case I get data using mobile number length greater than 10 digits using the below query

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

F
Flygenring

The function that I use to find the length of the string is length, used as follows:

SELECT * FROM table ORDER BY length(column);

J
Jesús Sánchez

I used this sentences to filter

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

you can change 10 for other number that you want to filter.


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

Example if you want to select from customer the entry's with a name shorter then 2 chars.

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