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'