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.
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.
Muy bueno justo lo que necesitaba.
hola creo modifique tu funcion y para que cuente bien seria asi
SELECT (
LENGTH( campo) – LENGTH( REPLACE( campo, ‘palabra’, ” ) )
) / ( LENGTH( ‘palabra’ ) )
FROM tabla
excelente aporte!!!
excelente aporte porque me evite realizar un ciclo