La risposta giusta è probabilmente la ricerca nel testo completo.
Tuttavia, ci sono due avvertimenti. Se disponi di stringhe brevi, come descrizioni di prodotti o commenti degli utenti, e desideri utilizzare like
, puoi fare qualcosa del genere:
where concat(' ', txt, ' ') like concat('% ', $word, ' %')
Tuttavia, questo presuppone che i delimitatori siano spazi. Quindi, non troverebbe "Ciao". Puoi risolvere questo problema facendo:
where concat(' ', replace(txt, ',' ' '), ' ') like concat('% ', $word, ' %')
Ma scoprirai presto che questo è un dolore. Quindi:ricerca full-text.
Secondo, se stai davvero memorizzando parole chiave nella colonna, allora la soluzione è più semplice. Non farlo. Crea una tabella di giunzione con una riga per riga della tabella originale e una per parola chiave. La memorizzazione di elenchi in stringhe è una cattiva idea in SQL.