No MariaDB,
CHAR_LENGTH()
é uma função de string interna que retorna o comprimento do argumento de string fornecido, medido em caracteres. Sintaxe
A sintaxe fica assim:
CHAR_LENGTH(str)
Onde
str
é a string para a qual o comprimento será retornado. Exemplo
Segue um exemplo básico:
SELECT CHAR_LENGTH('Splash');
Resultado:
+-----------------------+ | CHAR_LENGTH('Splash') | +-----------------------+ | 6 | +-----------------------+
Caracteres de vários bytes
O
CHAR_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 como
LENGTH()
, que retorna o número de bytes (a menos que esteja no modo Oracle, nesse caso faz o mesmo que CHAR_LENGTH()
– retorna o número de caracteres). Também está em contraste com funções como BIT_LENGTH()
que retorna o número de bits em uma string. Aqui está um exemplo que compara essas funções:
SELECT
CHAR_LENGTH('©'),
LENGTH('©'),
BIT_LENGTH('©');
Resultado:
+-------------------+--------------+------------------+ | CHAR_LENGTH('©') | LENGTH('©') | BIT_LENGTH('©') | +-------------------+--------------+------------------+ | 1 | 2 | 16 | +-------------------+--------------+------------------+
O símbolo de direitos autorais (
©
) usa dois bytes. CHAR_LENGTH()
retorna 1, porque ainda é apenas um único caractere. LENGTH()
e BIT_LENGTH()
por outro lado, retorna o número de bytes e bits respectivamente. Este exemplo foi feito usando o padrão
SQL_MODE
. Como mencionado, se estivesse no modo Oracle, LENGTH()
teria se comportado como CHAR_LENGTH()
e retornou 1
. Argumentos nulos
Passando
null
retorna null
:SELECT CHAR_LENGTH(null);
Resultado:
+-------------------+ | CHAR_LENGTH(null) | +-------------------+ | NULL | +-------------------+
Argumento ausente
Chamando
CHAR_LENGTH()
sem passar um argumento resulta em um erro:SELECT CHAR_LENGTH();
Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'CHAR_LENGTH'
Veja também o
CHARACTER_LENGTH()
função, que é sinônimo de CHAR_LENGTH()
.