Как можно сократить количество операторов Case в коде?
Один из способов уменьшить количество операторов "case" в коде - это использовать объединения таблиц (JOIN) и условные выражения (CASE WHEN) для получения результатов из другой таблицы. Например, вместо написания множества операторов "case" для проверки значений из другой таблицы, вы можете присоединить эту таблицу к основной и использовать соответствующие условия для выбора нужных данных. Это позволит сократить количество операторов "case" и сделать код более читаемым и эффективным. Кроме того, можно также использовать функции и процедуры для обработки информации из другой таблицы и возвращения результата в нужном формате, минимизируя тем самым количество операторов "case". Такой подход упрощает код и делает его более модульным, что упрощает его поддержку и расширение в будущем. Таким образом, использование JOIN, условных выражений и функций позволяет эффективно управлять информацией из других таблиц и сократить количество операторов "case" в коде.
Делаете две таблицы:
1. Фирма-отправитель Company_Sender
id - идентификатор компании
name - наименование компании
2. Шаблоны поиска отправителя Sender_Template
id - идентификатор отправителя
template - текст шаблона
company_id - идентификатор фирмы-отправителя
Искать потом можно таким запросом, либо делать Update на какое-нибудь поле в t для пометки результата:
select t.*, (select Cs.Name from Sender_Template St join Company_Sender Cs on Cs.Id = St.Company_Id where t.baza like St.template limit 1 ) as Sender_Name -- если null, значит ни один шаблон не подошел from t
PS: Это самый примитивный вариант автоматизации like. Нельзя задавать шаблоны за пределами возможностей синтаксиса like. Нужно как-то отличать дубликаты, если будет определение на больше чем один шаблон.