Я не думаю, что возможно ограничить количество возвращаемых слов, однако, чтобы ограничить количество возвращаемых символов, вы могли бы сделать что-то вроде
SELECT SUBSTRING(field_name, LOCATE('keyword', field_name) - chars_before, total_chars) FROM table_name WHERE field_name LIKE "%keyword%"
- chars_before - это число
символы, которые вы хотите выбрать до
Ключевое слово (s)
- total_chars - это
общее количество символов, которые вы хотите
выберите
т.е. В следующем примере будет возвращено 30 символов данных, начиная с 15 символов до ключевого слова
SUBSTRING(field_name, LOCATE('keyword', field_name) - 15, 30)
Примечание: как указал aryeh, любые отрицательные значения в SUBSTRING () значительно сбивают с толку - например, если ключевое слово найдено в первых символах [chars_before] поля, а затем в последних символах [chars_before] данных поле возвращено.