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

Como CHAR_LENGTH() funciona no MariaDB


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() .