La respuesta correcta es probablemente la búsqueda de texto completo.
Sin embargo, hay dos advertencias. Si tiene cadenas cortas, como descripciones de productos o comentarios de usuarios, y quiere usar like
, puedes hacer algo como esto:
where concat(' ', txt, ' ') like concat('% ', $word, ' %')
Sin embargo, esto supone que los delimitadores son espacios. Por lo tanto, no encontraría "Hola". Puedes arreglar esto haciendo:
where concat(' ', replace(txt, ',' ' '), ' ') like concat('% ', $word, ' %')
Pero rápidamente encontrará que esto es un dolor. Por lo tanto:búsqueda de texto completo.
En segundo lugar, si realmente está almacenando palabras clave en la columna, entonces la solución es más simple. No hagas eso. Cree una tabla de unión que tenga una fila por fila de la tabla original y una por palabra clave. Almacenar listas en cadenas es una mala idea en SQL.