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

MariaDB LENGTHB() Explicado


No MariaDB, LENGTHB() é uma função de string interna que retorna o comprimento do argumento de string fornecido, medido em bytes.

Sintaxe


A sintaxe fica assim:
LENGTHB(str)

Onde str é a string para a qual o comprimento será retornado.

Exemplo


Segue um exemplo básico:
SELECT LENGTHB('café');

Resultado:
+------------------+
| LENGTHB('café')  |
+------------------+
|                5 |
+------------------+

Nesse caso, a string tinha quatro caracteres, mas LENGTHB() retornou 5 . Isso ocorre porque o último caractere usa dois bytes.

Comparação com CHAR_LENGTH() e BIT_LENGTH()


Aqui está uma comparação rápida entre LENGTHB() , CHAR_LENGTH() (que retorna o número de caracteres na string) e BIT_LENGTH() (que retorna o número de bits na cadeia):
SELECT 
    LENGTHB('อ'),
    CHAR_LENGTH('อ'),
    BIT_LENGTH('อ');

Resultado:
+----------------+--------------------+-------------------+
| LENGTHB('อ')   | CHAR_LENGTH('อ')   | BIT_LENGTH('อ')   |
+----------------+--------------------+-------------------+
|              3 |                  1 |                24 |
+----------------+--------------------+-------------------+

Este caractere tailandês ( ) usa 3 bytes e, portanto, LENGTHB() retorna 3 .

CHAR_LENGTH() retorna 1 , porque ainda é apenas um único caractere e BIT_LENGTH() retorna o número de bits (24 ).

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 LENGTHB(1234);

Resultado:
+---------------+
| LENGTHB(1234) |
+---------------+
|             4 |
+---------------+

Argumentos nulos


Passando null retorna null :
SELECT LENGTHB(null);

Resultado:
+---------------+
| LENGTHB(null) |
+---------------+
|          NULL |
+---------------+

Argumento ausente


Chamando LENGTHB() sem passar um argumento resulta em um erro:
SELECT LENGTHB();

Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LENGTHB'

LENGTHB() vs LENGTH()


O LENGTHB() função é semelhante ao LENGTH() função, exceto como funciona no modo Oracle.

O LENGTHB() A função funciona da mesma maneira, independentemente do modo em que está (ou seja, ela retorna o número de bytes na string).

LENGTH() por outro lado, se comporta de forma diferente, dependendo se está no modo Oracle ou no modo padrão.

Especificamente, quando no modo padrão, LENGTH() mede a string em bytes. Mas quando no modo Oracle, ele mede a string em caracteres .