Это должно работать, хотя мне не нравится дизайн вашей базы данных:
$query_franchisee = sprintf("
SELECT *
FROM franchise
WHERE
stiShowInLinks = 'Y' AND (
idRegion = '%d' OR
idRegion LIKE '%d,%%' OR
idRegion LIKE '%%,%d' OR
idRegion LIKE '%%,%d,%%'
)
ORDER BY stiName ASC
",
$colname_franchisee,
$colname_franchisee,
$colname_franchisee,
$colname_franchisee
);
Функция sprintf обрабатывает символ %
как спецификатор формата и обрабатывает следующие несколько символов особым образом.Чтобы буквально использовать символ %
, вы должны использовать %%
.Итак, после sprintf ваш запрос становится:
idRegion = '1234' OR
idRegion LIKE '1234,%' OR
idRegion LIKE '%,1234' OR
idRegion LIKE '%,1234,%'