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

MariaDB LENGTHB() explicado

En MariaDB, LENGTHB() es una función de cadena incorporada que devuelve la longitud del argumento de cadena dado, medida en bytes.

Sintaxis

La sintaxis es así:

LENGTHB(str)

Donde str es la cadena para la que se devolverá la longitud.

Ejemplo

He aquí un ejemplo básico:

SELECT LENGTHB('café');

Resultado:

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

En este caso, la cadena tenía cuatro caracteres, pero LENGTHB() devolvió 5 . Esto se debe a que el último carácter usa dos bytes.

Comparación con CHAR_LENGTH() y BIT_LENGTH()

Aquí hay una comparación rápida entre LENGTHB() , CHAR_LENGTH() (que devuelve el número de caracteres en la cadena) y BIT_LENGTH() (que devuelve el número de bits en la cadena):

SELECT 
    LENGTHB('อ'),
    CHAR_LENGTH('อ'),
    BIT_LENGTH('อ');

Resultado:

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

Este carácter tailandés ( ) usa 3 bytes, y por lo tanto LENGTHB() devuelve 3 .

CHAR_LENGTH() devuelve 1 , porque sigue siendo un solo carácter, y BIT_LENGTH() devuelve el número de bits (24 ).

Sin cadenas

Si el argumento no es una cadena, se convierte en una cadena.

Aquí hay otro ejemplo que usa un número:

SELECT LENGTHB(1234);

Resultado:

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

Argumentos nulos

Pasando null devuelve null :

SELECT LENGTHB(null);

Resultado:

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

Argumento faltante

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

SELECT LENGTHB();

Resultado:

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

LENGTHB() vs LENGTH()

El LENGTH() la función es similar a LENGTH() función, excepto por cómo funciona en modo Oracle.

El LENGTH() funciona de la misma manera, independientemente del modo en que se encuentre (es decir, devuelve el número de bytes en la cadena).

LENGTH() por otro lado, se comporta de manera diferente, dependiendo de si está en modo Oracle o en modo predeterminado.

Específicamente, cuando está en el modo predeterminado, LENGTH() mide la cadena en bytes. Pero cuando está en modo Oracle, mide la cadena en caracteres .