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.
0 comentários :
Postar um comentário