Я бы не стал создавать функцию поиска по ключевым словам в SQL.Вы должны прочитать о встроенной функции полнотекстового поиска MySQL.Попытка всестороннего поиска с помощью базового SQL потребует много времени на разработку и медлительность во время выполнения.
Основная идея полнотекстового поиска - это сочетание двух систем.Во-первых, индексатор, который считывает вашу базу данных по ключевым словам и создает их «индекс».Во-вторых, Searcher, который просматривает каталог, созданный индексатором, для создания результатов поиска.
Существуют сторонние инструменты - Lucene, Xapian, Sphinx - которые упаковывают свои собственные Indexer / Searcher.Я использовал Xapian для некоторого успеха.