SELECT * FROM table ORDER BY string_length(column);
Is there a MySQL function to do this (of course instead of string_length
)?
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.
SELECT * FROM table
ORDER BY LENGTH(column);
Documentation on the LENGTH()
function, as well as all the other string functions, is available here.
Having a look at MySQL documentation for the string functions, we can also use CHAR_LENGTH()
and CHARACTER_LENGTH()
as well.
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;
The function that I use to find the length of the string is length
, used as follows:
SELECT * FROM table ORDER BY length(column);
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.
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**
Success story sharing
CHAR_LENGTH
, since if I return the number of characters ? , por ejemploCHAR_LENGTH(12)
return2
select LENGTH('Ö');
result is1
. same withCHAR_LENGTH()
,OCTET_LENGTH()