MariaDB
 sql >> Base de Dados >  >> RDS >> MariaDB

MariaDB CHARACTER_LENGTH() explicado


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


O CHARACTER_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 CHARACTER_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 
    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() 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 CHARACTER_LENGTH() e retornou 1 .

Argumentos nulos


Passando null retorna null :
SELECT CHARACTER_LENGTH(null); 

Resultado:
+------------------------+| CHARACTER_LENGTH(nulo) |+------------------------+| NULO |+------------------------+

Argumento ausente


Chamando CHARACTER_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'