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

Explicación de MariaDB CHARACTER_LENGTH()

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

CHARACTER_LENGTH() es en realidad un sinónimo de CHAR_LENGTH() , así que puedes usar cualquiera.

Sintaxis

La sintaxis es así:

CHARACTER_LENGTH(str)

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

Ejemplo

He aquí un ejemplo básico:

SELECT CHARACTER_LENGTH('Cat');

Resultado:

+-------------------------+
| CHARACTER_LENGTH('Cat') |
+-------------------------+
|                       3 |
+-------------------------+

En este caso, la cadena tenía tres caracteres, por lo que obtuvimos 3 .

Sin cadenas

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

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

SELECT CHARACTER_LENGTH(1234);

Resultado:

+------------------------+
| CHARACTER_LENGTH(1234) |
+------------------------+
|                      4 |
+------------------------+

Comparación con CHAR_LENGTH()

Como se mencionó, CHARACTER_LENGTH() es un sinónimo de CHAR_LENGTH() . Aquí está en comparación con CHAR_LENGTH() :

SELECT 
    CHARACTER_LENGTH(1234),
    CHAR_LENGTH(1234);

Resultado:

+------------------------+-------------------+
| CHARACTER_LENGTH(1234) | CHAR_LENGTH(1234) |
+------------------------+-------------------+
|                      4 |                 4 |
+------------------------+-------------------+

Caracteres de varios bytes

El CHARACTER_LENGTH() La función cuenta cada carácter como un solo carácter, independientemente de cuántos bytes utilice. Por lo tanto, los caracteres que usan dos, tres o incluso cuatro bytes se seguirán contando como un carácter.

Esto contrasta con funciones como LENGTH() , que devuelve el número de bytes (a menos que esté en modo Oracle, en cuyo caso hace lo mismo que CHARACTER_LENGTH() – devuelve el número de caracteres). También contrasta con funciones como BIT_LENGTH() que devuelve el número de bits en una cadena.

Aquí hay un ejemplo que compara estas funciones:

SELECT 
    CHARACTER_LENGTH('อ'),
    LENGTH('อ'),
    BIT_LENGTH('อ');

Resultado:

+-------------------------+---------------+-------------------+
| CHARACTER_LENGTH('อ')   | LENGTH('อ')   | BIT_LENGTH('อ')   |
+-------------------------+---------------+-------------------+
|                       1 |             3 |                24 |
+-------------------------+---------------+-------------------+

Este carácter tailandés ( ) utiliza 3 bytes. CHARACTER_LENGTH() devuelve 1, porque todavía es un solo carácter. LENGTH() y BIT_LENGTH() por otro lado, devuelve el número de bytes y bits respectivamente.

Este ejemplo se realizó usando el SQL_MODE predeterminado . Como se mencionó, si hubiera estado en modo Oracle, LENGTH() se habría comportado como CHARACTER_LENGTH() y devolvió 1 .

Argumentos nulos

Pasando null devuelve null :

SELECT CHARACTER_LENGTH(null);

Resultado:

+------------------------+
| CHARACTER_LENGTH(null) |
+------------------------+
|                   NULL |
+------------------------+

Argumento faltante

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

SELECT CHARACTER_LENGTH();

Resultado:

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