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

Cómo funciona CHAR_LENGTH() en MariaDB

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

Sintaxis

La sintaxis es así:

CHAR_LENGTH(str)

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

Ejemplo

He aquí un ejemplo básico:

SELECT CHAR_LENGTH('Splash');

Resultado:

+-----------------------+
| CHAR_LENGTH('Splash') |
+-----------------------+
|                     6 |
+-----------------------+

Caracteres de varios bytes

El CHAR_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 CHAR_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 
    CHAR_LENGTH('©'),
    LENGTH('©'),
    BIT_LENGTH('©');

Resultado:

+-------------------+--------------+------------------+
| CHAR_LENGTH('©')  | LENGTH('©')  | BIT_LENGTH('©')  |
+-------------------+--------------+------------------+
|                 1 |            2 |               16 |
+-------------------+--------------+------------------+

El símbolo de copyright (© ) utiliza dos bytes. CHAR_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 CHAR_LENGTH() y devolvió 1 .

Argumentos nulos

Pasando null devuelve null :

SELECT CHAR_LENGTH(null);

Resultado:

+-------------------+
| CHAR_LENGTH(null) |
+-------------------+
|              NULL |
+-------------------+

Argumento faltante

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

SELECT CHAR_LENGTH();

Resultado:

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

Consulte también CHARACTER_LENGTH() función, que es un sinónimo de CHAR_LENGTH() .