Tengo un foro PHPBB en el que he capado las búsquedas internas, porque su sistema de optimización hacía que ocupara mucho en las tablas de la base de datos.
Por ello, he programado un buscador externo, desde otra web, para hacer búsquedas de texto en los mensajes publicados en los foros. Por el momento funciona bastante bien, pero tengo un problemilla al buscar palabras que forman parte de otras mayores:
¿Cómo puedo hacer para que al buscar una palabra, no me devuelva los resultados en los que aparece esa palabra dentro de otra?
Me explicaré mejor: si busco la palabra "rico", no quiero que me la encuentre ni en "ricos" ni en "excéntrico", por ejemplo. Sólo cuando encuentre la palaba exacta "rico" dentro del campo. Por ejemplo, en "soy un hombre rico con mucho dinero".
Ahora mismo la búsqueda la hago de este modo:
post_text LIKE '%rico%'
Pero claro, eso me devuelve las cadenas que incluyen "rico" dentro de ellas, y no es lo que quiero. Si fuerzo a que tengan espacios antes y después, de este modo:
post_text LIKE '% rico %'
no me encontraría las cadenas que comiencen o terminen con "rico" sin el espacio, por ejemplo "rico es una palabra" o "esto está muy rico".
He pensado también esta otra manera:
post_text LIKE '[ ]*rico[ ]*'
Esto es, cero o más apariciones de espacios antes y después, pero entonces si el campo contiene otros caracteres aparte de los espacios y "rico", tampoco funcionaría.
Finalmente, esta otra posibilidad:
post_text LIKE '%[ ]*rico[ ]*%'
sería equivalente a la primera...
¿Cómo hacerlo?