Je dirais qu'ici, votre structure de données n'est pas bonne.
Ce serait une meilleure solution de ne pas stocker plusieurs valeurs dans un champ en utilisant un format séparé par des virgules, mais d'utiliser trois tables, définies de cette façon :
searchtest
id
name
keywords
id
word
keywords_searchtest
id_keyword
id_searchtest
Avec cela, rechercher des entrées dans searchtest
qui ont des mots-clés spécifiques serait aussi simple que :
select searchtest.*, keywords.*
from searchtest
inner join keywords_searchtest on keywords_searchtest.id_searchtest = searchtest.id
inner join keywords on keywords.id = keywords_searchtest.id_keyword
where keywords.word = 'test2'
Et, en plus, vous devrez rechercher des entrées de test de recherche avec un nom spécifique :
select *
from searchtest
where name = 'trophy1'