Ну, для MS SQL я напишу такое, функция разбиения строки по символу разделителю пишется в строк 10, кто-то у нас на работе написал, код глядел, ничего сложного. Дольше строим sql запрос в коде (@sql varchar(max)), присваиваем в цикле and like % + select value from array where id = @счетчик_в_цикле) + %. Запускаем exec @sql. Для mysql - наверное тоже можно, сам не работал с ней, но класс БД тот же, возможности в синтаксисе должны быть.
А дальше оптимизированный not like оптимизирован))))
Нормальный поиск однозначно не на sql делается. Какого-то крокодила из костылей можно сделать. К сожалению, не могу сказать как делать нормальный поиск, но я бы поискал какую-то информации, какие-то истории "как мы сделали крутой/нормальный поиск.
Существует понятие полнотекстовый поиск, он вроде есть в Mysql и он решает красиво то что я в начале написал, но не решает проблему формы (падежей склонений и т. п.) слов.