Utilizando las funciones substr() y strpos() de php es muy sencillo. Almacenas el contenido del registro de la base de datos en una variable llamémosla $contenido y en otra lo que estás buscando ($cadena_buscada) y haces lo siguiente:
Código PHP:
$numero_caracteres=100; //El numero de caracteres que quieres mostrar antes y despues
echo substr($contenido, strpos($contenido, $cadeba_buscada)-$numero_caracteres, strpos($contenido, $cadeba_buscada) + strlen($cadena_buscada) + $numero_caracteres );
Luego, con condicionales y bucles trabajándolo un poco puedes mostrar puntos suspensivos (...) cuando se ha cortado el texto, o repetir la función cuando encuentra la cadena buscada varias veces en el registro, pero eso te lo dejo para que lo hagas tú :) .
Espero haberte sido de ayuda. Un saludo