Поскольку хранимые процедуры завершены по Тьюрингу, и вы можете использовать «курсор» для циклического перебора записей в таблице (возможно, с какой-то существующей причиной «ГДЕ»), то вы можете сделать это в хранимой процедуре.
Сохраненная функция также возможна.
Однако язык хранимых подпрограмм MySQL настолько ужасен как с точки зрения удобства использования, так и с точки зрения производительности, что результат вряд ли будет легким или быстрым.
Так что, возможно, вам лучше написать MySQL UDF (которую вы можете написать на любом языке, при условии, что вы можете сделать так, чтобы она выглядела как библиотека C), и вместо этого сделать это.
Рассмотрим ваши конкретные требования. Я предполагаю, что запрос с большим количеством тегов «OR col LIKE ...» для вас слишком неэффективен, поскольку вы хотите сопоставить тысячи шаблонов одновременно, верно?