LOCATE(substr,str,pos)
Returns the position of the first occurrence of substring substr in string str, starting at position pos. Returns 0 if substr is not in str:
mysql> select LOCATE('bar', 'foobarbar',5);
-> 7
Всё понятно? Ищешь первый пробел с 100 символ, или 99.
А потом уже SUBSTRING(str,pos,len)
Т.е. получаем что то типа:
SUBSTRING(news_text, 0, LOCATE(' ', news_text, 99))