sql >> Base de Datos >  >> RDS >> Mysql

Cómo funciona la función CHARACTER_LENGTH() en MySQL

En MySQL, el CHARACTER_LENGTH() La función devuelve la longitud de una cadena, medida en caracteres.

CHARACTER_LENGTH() es un sinónimo de CHAR_LENGTH() función.

Sintaxis

La sintaxis es así:

CHARACTER_LENGTH(str)

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

Ejemplo 1:uso básico

He aquí un ejemplo del uso básico:

SELECT CHARACTER_LENGTH('Cat');

Y aquí está el resultado:

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

Ejemplo 2:espacios en blanco al final

Tenga en cuenta que CHARACTER_LENGTH() incluye espacios en blanco al final (por ejemplo, espacios al final de la cadena) en sus cálculos.

Entonces, si agregamos un espacio al final del ejemplo anterior:

SELECT CHARACTER_LENGTH('Cat');

Aquí está el resultado:

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

Pero siempre podemos eliminar ese espacio final usando el TRIM() o la función RTRIM() función:

SELECT 
  CHARACTER_LENGTH(TRIM('Cat ')) AS 'TRIM',
  CHARACTER_LENGTH(RTRIM('Cat ')) AS 'RTRIM';

Aquí está el resultado:

+------+-------+
| TRIM | RTRIM |
+------+-------+
|    3 |     3 |
+------+-------+

Ejemplo 3:espacios en blanco iniciales

El mismo concepto se aplica a los espacios en blanco iniciales. Puede usar TRIM o LTRIM :

SELECT 
  CHARACTER_LENGTH(TRIM(' Cat')) AS 'TRIM',
  CHARACTER_LENGTH(LTRIM(' Cat')) AS 'LTRIM';

Resultado:

+------+-------+
| TRIM | LTRIM |
+------+-------+
|    3 |     3 |
+------+-------+

Ejemplo 4:tipos de datos

No importa en qué tipo de datos se almacene la cadena, aún devolverá el mismo resultado. Esto contrasta con LENGTH() función, que devolverá el doble de caracteres en los casos en que los datos se almacenen como una cadena Unicode.

En el siguiente ejemplo, la columna ArtistName usa varchar(255) :

SELECT CHARACTER_LENGTH(ArtistName) Result
FROM Artists
WHERE ArtistName = 'Lit';

Aquí está el resultado:

+--------+
| Result |
+--------+
|      3 |
+--------+

Y si modificamos el ArtistName columna para usar Unicode:

ALTER TABLE Artists 
MODIFY COLUMN ArtistName VARCHAR(255) unicode;

Y ejecute la misma consulta de nuevo:

SELECT CHARACTER_LENGTH(ArtistName) 
FROM Artists
WHERE ArtistName = 'Lit';

Seguimos obteniendo el mismo resultado:

+--------+
| Result |
+--------+
|      3 |
+--------+

Sin embargo, si hubiéramos usado LENGTH() función, el resultado sería 6. Esto se debe a que las cadenas Unicode almacenan 2 bytes por carácter, y el LENGTH() función devuelve la longitud medida en bytes.