Truco para contar palabras en MySQL

MySQL no tienen ninguna función para contar las palabras de una columna. Con este sencillo truco lo podemos resolver:

SELECT SUM( LENGTH(columna) - LENGTH(REPLACE(columna, ' ', ''))+1)
FROM tabla



Básicamente se trata de contar el número de espacios.

Tags: none

Noticias similares:
  1. Ventayuka el 1 de Octubre de 2008

    Bastante ingenioso, pero no funciona en todos los casos. ¿que pasa si existe más de un espacio entre las palabras o a final de las palabras?, algo así:

    “HOLA COLEGA” => 2 palabras (bien!)
    “HOLA COLEGA CAPULLETE” => 3 palabras (bien!)
    “HOLA COLEGA CAPULLETE ” => 4 palabras (no tan bien)
    “HOLA COLEGA CAPULLETE ” => 5 palabras (no tan bien)
    ” TE PASAS ” => 12 palabras (no tan bien)

    Podría mejorarse algo usando la función TRIM de MySQL pero eso solo eliminaría el problema en los espacios del principio y del final. Pero al menos es algo.

  2. Nicolas el 2 de Febrero de 2009

    Muy bueno justo lo que necesitaba.

  3. alka33 el 29 de Abril de 2009

    hola creo modifique tu funcion y para que cuente bien seria asi
    SELECT (
    LENGTH( campo) - LENGTH( REPLACE( campo, ‘palabra’, ” ) )
    ) / ( LENGTH( ‘palabra’ ) )
    FROM tabla

  4. seba el 1 de Junio de 2010

    excelente aporte!!!


Comenta