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)?

Garota
fonte

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.

hsz
fonte
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 .

Kaleb Brasee
fonte
27

Ter um olhar para a documentação MySQL para as funções de cadeia, também podemos usar CHAR_LENGTH()e CHARACTER_LENGTH()bem.

NeverHopeless
fonte
3

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

SELECT * FROM table ORDER BY length(column);
Rito
fonte
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.

Jesús Sánchez
fonte
-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**
Levi Maier
fonte