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.
Noticias similares:
- MyISAM más rápido que InnoDB, ¿seguro?
- Enlaces sobre optimización de consultas en MySQL
- Triptales, cómo contar un viaje
- Google anuncia un API para librerías AJAX
- Grandes eufemismos de la publicidad



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!!!