Truco para contar palabras en MySQL

26 Sep, 2008 Publicado por

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.

5 Comments

  1. Ventayuka says:

    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 says:

    Muy bueno justo lo que necesitaba.

  3. alka33 says:

    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 says:

    excelente aporte!!!

  5. efreway says:

    excelente aporte porque me evite realizar un ciclo

Deja una respuesta