Desenvolvedor e Analista de Sistemas | IFPA

segunda-feira, 7 de abril de 2014

Contar caracteres com MySQL

com 0 Comentário
Nesta oficina de MySQL vamos fazer uso das funções da linguagem SQL para contar caracteres de um campo salvo em uma tabela. Ou seja, vamos selecionar diversos registros de uma tabela e contar os caracteres de um de seus campos. 

No jogo de funções de MySQL para string (cadeias de caracteres) temos várias funções para contar caracteres: 

LENGTH(cadeia) 
Recebe uma cadeia , conta e retorna o número de caracteres. 

CHARACTER_LENGTH(cadeia) 
Recebe também uma cadeia e retorna o número de caracteres contados. 

CHAR_LENGTH(cadeia) 
É um sinônimo de CHARACTER_LENGTH. Embora nem todas as versões de MySQL o tenham. 

A diferença entre LENGTH e CHARACTER_LENGTH é que em CHARACTER_LENGTH um caractere "multibyte" conta como um só caractere. Em LENGTH conta o número de bytes da cadeia. Assim, no caso de ter uma cadeia com 5 caracteres que ocupam 2 bytes cada um, LENGTH retornaria 10 e CHARACTER_LENGTH só 5. 

Por enquanto vamos utilizar CHARACTER_LENGTH, que parece nos devolverá os resultados que esperamos obter, o número de caracteres da cadeia, independentemente de que a codificação possa ser multi-byte. 

SELECT character_length( 'um texto' ) 

Esta sentença devolveria o valor 8, que é o número de caracteres que possui a cadeia "um texto". 

Porém, agora imaginemos que queremos obter todos os países de uma tabela, junto com o número de caracteres que têm cada uma das cadeias do nome do país. 

SELECT CHARACTER_LENGTH(nome_país), nome_país FROM país 

Isto nos retornaria um conjunto de registros com o número de caracteres de cada nome do país e em seguida outro campo com o nome do país. 

SELECT nome_país FROM país where CHARACTER_LENGTH(nome_país)=6 

Isto nos retorna os nomes de país que possuem 6 caracteres. 

SELECT CHARACTER_LENGTH(nome_país) as 'numcaracteres', nome_país FROM país ORDER BY CHARACTER_LENGTH(nome_país) 

Esta última sentença retorna um conjunto de registros onde o primeiro campo, ao qual demos o nome de "numcaracteres" para depois nos referirmos a ele, mostra o número de caracteres e o segundo campo, o nome do país. Em seguida está ordenado pela longitude da cadeia, contada também por seus caracteres.

+1

0 comentários :

Postar um comentário

Total de visualizações