No MariaDB,
CHARACTER_LENGTH()
é uma função de string interna que retorna o comprimento do argumento de string fornecido, medido em caracteres. CHARACTER_LENGTH()
é na verdade um sinônimo para CHAR_LENGTH()
, então você pode usar qualquer um. Sintaxe
A sintaxe fica assim:
CHARACTER_LENGTH(str)
Onde
str
é a string para a qual o comprimento será retornado. Exemplo
Segue um exemplo básico:
SELECT CHARACTER_LENGTH('Cat');
Resultado:
+-------------------------+| CHARACTER_LENGTH('Gato') |+-------------------------+| 3 |+-------------------------+
Nesse caso, a string tinha três caracteres, então temos
3
. Não-Strings
Se o argumento não for uma string, ele será convertido em uma string.
Aqui está outro exemplo que usa um número:
SELECT CHARACTER_LENGTH(1234);
Resultado:
+------------------------+| CHARACTER_LENGTH(1234) |+------------------------+| 4 |+------------------------+
Comparação com CHAR_LENGTH()
Como mencionado,
CHARACTER_LENGTH()
é sinônimo de CHAR_LENGTH()
. Aqui está em comparação com CHAR_LENGTH()
:SELECT
CHARACTER_LENGTH(1234),
CHAR_LENGTH(1234);
Resultado:
+------------------------+-------------------+| CHARACTER_LENGTH(1234) | CHAR_LENGTH(1234) |+------------------------+------------------- +| 4 | 4 |+------------------------+-------------------+Caracteres de vários bytes
OCHARACTER_LENGTH()
A função conta cada caractere como um único caractere, independentemente de quantos bytes ele usa. Portanto, caracteres que usam dois, três ou até quatro bytes ainda serão contados como um caractere.
Isso contrasta com funções comoLENGTH()
, que retorna o número de bytes (a menos que esteja no modo Oracle, nesse caso faz o mesmo queCHARACTER_LENGTH()
– retorna o número de caracteres). Também está em contraste com funções comoBIT_LENGTH()
que retorna o número de bits em uma string.
Aqui está um exemplo que compara essas funções:
SELECT CHARACTER_LENGTH('อ'), LENGTH('อ'), BIT_LENGTH('อ');
Resultado:
+-------------------------+---------------+---- ---------------+| CHARACTER_LENGTH('อ') | LENGTH('อ') | BIT_LENGTH('อ') |+-------------------------+---------------+ -------------------+| 1 | 3 | 24 |+--------------+---------------+----- --------------+
Este caractere tailandês (อ
) usa 3 bytes.CHARACTER_LENGTH()
retorna 1, porque ainda é apenas um único caractere.LENGTH()
eBIT_LENGTH()
por outro lado, retorna o número de bytes e bits respectivamente.
Este exemplo foi feito usando o padrãoSQL_MODE
. Como mencionado, se estivesse no modo Oracle,LENGTH()
teria se comportado comoCHARACTER_LENGTH()
e retornou1
.
Argumentos nulos
Passandonull
retornanull
:
SELECT CHARACTER_LENGTH(null);
Resultado:
+------------------------+| CHARACTER_LENGTH(nulo) |+------------------------+| NULO |+------------------------+Argumento ausente
ChamandoCHARACTER_LENGTH()
sem passar um argumento resulta em um erro:
SELECT CHARACTER_LENGTH();
Resultado:
ERRO 1582 (42000):contagem de parâmetro incorreta na chamada para a função nativa 'CHARACTER_LENGTH'