MySQL - Como selecionar dados pelo comprimento da string


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

Existe uma função MySQL para fazer isso (é claro em vez de string_length)?

Respostas:


492

Você está procurando CHAR_LENGTH() obter o número de caracteres em uma string.

Para conjuntos de caracteres de vários bytes LENGTH(), você fornecerá o número de bytes que a string ocupa, enquanto CHAR_LENGTH()retornará o número de caracteres.


139
Na verdade, CHAR_LENGTH () deve ser uma escolha melhor. Para conjuntos de caracteres de vários bytes, LENGTH () fornecerá o número de bytes que a string ocupa, enquanto CHAR_LENGTH () retornará o número de caracteres.
András Szepesházi 1/11/11

4
selecione COMPRIMENTO ('Ö'); resultados 2 !! A resposta de András Szepesházi é a correta!
Fubo

É correto enviar um parâmetro inteiro para CHAR_LENGTH, pois se eu retornar o número de caracteres? , por ejemplo CHAR_LENGTH(12)return2
DarkFenix

81
select * from table order by length(column);

A documentação sobre a função length (), bem como todas as outras funções de string, está disponível aqui .



3

A função que eu uso para encontrar o comprimento da string é lengthusada da seguinte maneira:

SELECT * FROM table ORDER BY length(column);

1

Eu usei essas frases para filtrar

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

você pode alterar 10 para outro número que deseja filtrar.


-2
select * from *tablename* where 1 having length(*fieldname*)=*fieldlength*

Exemplo se você deseja selecionar do cliente as entradas com um nome menor que 2 caracteres.

select * from customer where 1 **having length(name)<2**
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.