No MariaDB,
BIT_LENGTH()
é uma função de string incorporada que retorna o comprimento do argumento de string fornecido em bits. Você fornece a string como um argumento ao chamar a função.
Sintaxe
A sintaxe fica assim:
BIT_LENGTH(str)
Onde
str
é a corda. Exemplo
Aqui está um exemplo simples:
SELECT BIT_LENGTH('A');
Resultado:
+-----------------+ | BIT_LENGTH('A') | +-----------------+ | 8 | +-----------------+
Podemos ver que a letra A tem 8 bits de comprimento (ou seja, 1 byte).
Aqui está um exemplo que usa caracteres com mais de 1 byte:
SELECT
BIT_LENGTH('©'),
BIT_LENGTH('ไ'),
BIT_LENGTH('ม้');
Resultado:
+------------------+-------------------+----------------------+ | BIT_LENGTH('©') | BIT_LENGTH('ไ') | BIT_LENGTH('ม้') | +------------------+-------------------+----------------------+ | 16 | 24 | 48 | +------------------+-------------------+----------------------+
A segunda e terceira strings são caracteres tailandeses. A terceira string usa uma marca diacrítica, que acaba dobrando o número de bits retornados.
Aqui está esse personagem com e sem o sinal diacrítico:
SELECT
BIT_LENGTH('ม้'),
BIT_LENGTH('ม');
Resultado:
+----------------------+-------------------+ | BIT_LENGTH('ม้') | BIT_LENGTH('ม') | +----------------------+-------------------+ | 48 | 24 | +----------------------+-------------------+
Tipo de argumento errado
Se o argumento não for uma string, ele será convertido em string.
Exemplo:
SELECT
BIT_LENGTH(1),
BIT_LENGTH(12),
BIT_LENGTH(123);
Resultado:
+---------------+----------------+-----------------+ | BIT_LENGTH(1) | BIT_LENGTH(12) | BIT_LENGTH(123) | +---------------+----------------+-----------------+ | 8 | 16 | 24 | +---------------+----------------+-----------------+
Argumentos nulos
Passando
null
retorna null
:SELECT BIT_LENGTH(null);
Resultado:
+------------------+ | BIT_LENGTH(null) | +------------------+ | NULL | +------------------+
Argumento ausente
Chamando
BIT_LENGTH()
sem passar um argumento resulta em um erro:SELECT BIT_LENGTH();
Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'BIT_LENGTH'