Saltar al contenido

Mysql: cuente los valores del campo separado por comas

Este grupo de expertos pasados ciertos días de investigación y recopilar de datos, obtuvimos la solución, esperamos que te sea útil en tu plan.

Solución:

Solución inteligente aquí en SO: Cómo contar elementos en una lista separada por comas MySQL

LENGTH(textfield) - LENGTH(REPLACE(textfield, ',', '')) + 1

EDITAR

Sí, puede seleccionarlo como una columna adicional: y corregir con CHAR_LENGTH de la respuesta de @HamletHakobyan:

SELECT 
  ID, 
  textfield, 
  (CHAR_LENGTH(textfield) - CHAR_LENGTH(REPLACE(textfield, ',', '')) + 1) as total 
FROM table

SELECT SUM(LENGTH(textfield) - LENGTH(REPLACE(textfield, ',', '')) + 1)
  FROM tablename

Hay una pequeña pero significativa omisión en todas las respuestas. Todo funcionará solo si el conjunto de caracteres de la base de datos es utf8 más o menos, es decir, donde el símbolo , obtiene un byte. El hecho de que el LENGTH la función devuelve el número de bytes en vez de chars. La respuesta correcta es usar CHAR_LENGTH que devuelve el número de caracteres.

SELECT
   SUM(CHAR_LENGTH(textfield) - CHAR_LENGTH(REPLACE(textfield, ',', '')) + 1) cnt
FROM yourTable

Tienes la posibilidad dar visibilidad a esta noticia si te ayudó.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *