Буквально вчера я исправлял ошибку в старом приложении и видел, где они обрабатывали это так:
AND (T.ServiceIDs = '#SegmentID#' OR T.ServiceIDs LIKE '#SegmentID#,%'
OR T.ServiceIDs LIKE '%,#SegmentID#,%' OR T.ServiceIDs LIKE '%,#SegmentID#')
Я предполагаю, что вы говорите что-то вроде значения ServiceID из базы данных, которое может содержать7,9,11 и что переменная SegmentID имеет одно или несколько значений.Это было в проверке оператора CFIF, чтобы увидеть, что SegmentID на самом деле имеет значение (которое всегда имело место из-за предыдущей логики, которая будет его использовать по умолчанию.
Лично я бы поступил так, как предлагали другие, и я бысоздайте то, что я всегда называю таблицей мостов, которая позволяет вам иметь от 0 до многих PK из одной таблицы, связанной с PK другой.
Мне пришлось решать эту проблему несколько лет назад, когда я не мог изменить таблицуструктура и я создал пользовательский тип таблицы и набор функций, чтобы я мог обрабатывать значения с помощью SQL, как если бы они пришли из таблицы. Это решение пользовательского типа таблицы, хотя и специфично для Oracle, и я не знаю, как это сделатьв MySQL без каких-либо исследований с моей стороны.