Efectivamente, como te indica el compañero.
Si estas almacenando los caracteres extraños en la base de datos como entidades html, lo estas haciendo mal desde el principio.
Una solución o más bien un parche para tu caso podría ser que busques con y sin tilde, haciendo tu el reemplazo del carácter por su homólogo como la que expongo en el
primer hilo que paso el conpañero.
Ejemplo:
Código PHP:
$texto="José"
$texto= htmlentities ($_POST["texto"],ENT_QUOTES);
$texto2= eliminar_simbolos($_POST["texto"]);
$sql="SELECT * FROM mi_tabla WHERE ( campo LIKE '%$texto%' ) OR ( campo LIKE '%$texto2%' ) ";