Contar caracteres con MySQL

  • Por
  • 04 de enero de 2008
  • Valoración:
  • 0 Comentarios
  • MySQL
Hacemos uso de las funciones para contar caracteres en MySQL. Varios ejemplos de sentencia SQL que cuenta caracteres de strings.
En este taller de MySQL vamos a hacer uso de las funciones del lenguaje SQL para contar caracteres de un campo guardado en una tabla. Es decir, vamos a seleccionar diversos registros de una tabla y vamos a contar los caracteres de uno de sus campos.

En el juego de funciones de MySQL para string (cadenas de caracteres) tenemos varias funciones para contar caracteres:

LENGTH(cadena)
Recibe una cadena y cuenta y devuelve el número de caracteres.

CHARACTER_LENGTH(cadena)
Recibe también una cadena y devuelve el número de caracteres contados.

CHAR_LENGTH(cadena)
Es un sinónimo de CHARACTER_LENGTH. Aunque no lo tienen todas las versiones de MySQL.

La diferencia entre LENGTH y CHARACTER_LENGTH es que en CHARACTER_LENGTH un carácter "multibyte" cuenta como un solo carácter. En LENGTH cuenta el número de bytes de la cadena. Así que en el caso de tener una cadena con 5 caracteres que ocupan 2 bytes cada uno, LENGTH devolvería 10 y CHARACTER_LENGTH sólo 5.

Por ahora vamos a utilizar CHARACTER_LENGTH, que parece que nos devolverá los resultados que esperamos obtener, el número de caracteres de la cadena, independientemente que la codificación pueda ser multi-byte.

SELECT character_length( 'un texto' )

Esta sentencia devolvería el valor 8, que es el número de caracteres que tiene el la cadena "un texto".

Pero ahora pongamos que queremos sacar todos los países de una tabla, junto con el número de caracteres que tiene cada una de las cadenas del nombre del país.

SELECT CHARACTER_LENGTH(nombre_pais), nombre_pais FROM pais

Esto nos devolvería un conjunto de registros con el número de caracteres de cada nombre del país y luego otro campo con el nombre del país.

SELECT nombre_pais FROM pais where CHARACTER_LENGTH(nombre_pais)=6

Esto nos devuelve los nombres de país que tienen 6 caracteres.

SELECT CHARACTER_LENGTH(nombre_pais) as 'numcaracteres', nombre_pais FROM pais ORDER BY CHARACTER_LENGTH(nombre_pais)

Esta última sentencia devuelve un conjunto de registros donde el primer campo, que hemos dado el nombre de "numcaracteres" para luego referirnos a él, muestra el número de caracteres y el segundo campo el nombre del país. Luego está ordenado por la longitud de la cadena, contada también por sus caracteres.

Autor

Miguel Angel Alvarez

Miguel es fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Comenzó en el mundo del desarrollo web en el año 1997, transformando su hobby en su trabajo.

Compartir