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'