En SQL de Mysql tienes muchas funciones para tratamiento de cadenas .. entre ellas:
LEFT(str,len)
http://dev.mysql.com/doc/mysql/en/String_functions.html
SELECT LEFT(titulo,40) as titulo_recortado,resto de campos FROM tabla ...
bajo el alias de "titulo_recortado" tendrás ahí tu campo titulo con sus primeros 40 caracteres.
Vía SQL y esa función no se atiende a que se corte una palabra por médio en cualquier sitio ..
Un saludo,
Un saludo,