sql >> Base de Datos >  >> RDS >> MariaDB

Cómo funciona BIT_LENGTH() en MariaDB

En MariaDB, BIT_LENGTH() es una función de cadena integrada que devuelve la longitud del argumento de cadena dado en bits.

Proporcionas la cadena como argumento cuando llamas a la función.

Sintaxis

La sintaxis es así:

BIT_LENGTH(str)

Donde str es la cadena.

Ejemplo

He aquí un ejemplo simple:

SELECT BIT_LENGTH('A');

Resultado:

+-----------------+
| BIT_LENGTH('A') |
+-----------------+
|               8 |
+-----------------+

Podemos ver que la letra A tiene 8 bits (es decir, 1 byte).

Aquí hay un ejemplo que usa caracteres que tienen más de 1 byte:

SELECT 
    BIT_LENGTH('©'),
    BIT_LENGTH('ไ'),
    BIT_LENGTH('ม้');

Resultado:

+------------------+-------------------+----------------------+
| BIT_LENGTH('©')  | BIT_LENGTH('ไ')   | BIT_LENGTH('ม้')      |
+------------------+-------------------+----------------------+
|               16 |                24 |                   48 |
+------------------+-------------------+----------------------+

La segunda y tercera cadena son caracteres tailandeses. La tercera cadena usa una marca diacrítica, lo que termina duplicando el número de bits devueltos.

Aquí está ese carácter con y sin el signo diacrítico:

SELECT
    BIT_LENGTH('ม้'),
    BIT_LENGTH('ม');

Resultado:

+----------------------+-------------------+
| BIT_LENGTH('ม้')     | BIT_LENGTH('ม')    |
+----------------------+-------------------+
|                   48 |                24 |
+----------------------+-------------------+

Tipo de argumento incorrecto

Si el argumento no es una cadena, se convertirá en una cadena.

Ejemplo:

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

Pasando null devuelve null :

SELECT BIT_LENGTH(null);

Resultado:

+------------------+
| BIT_LENGTH(null) |
+------------------+
|             NULL |
+------------------+

Argumento faltante

Llamando a BIT_LENGTH() sin pasar un argumento da como resultado un error:

SELECT BIT_LENGTH();

Resultado:

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