У меня проблема с получением результатов из базы данных. У меня есть столбец под названием «Регионы», который в качестве значения содержит все регионы, выбранные пользователем через форму подписки на информационный бюллетень, с запятыми, например «Ближний Восток, Европа».
Я создаю фильтр, который должен будет получить список всех пользователей, которые регистрируются в определенном или нескольких регионах. Пользователи могут выбрать несколько регионов. Из внешнего интерфейса я получаю все выбранные регионы в этом формате «Глобальный, Ближний Восток», который мне нужно использовать в моем SQL-запросе, чтобы найти всех пользователей, у которых глобальный и Ближний Восток выбран в качестве выбранного региона.
Я пытался использовать FIND_IN_SET, но это не очень помогает. Пробовал ниже
$trimmedRegions = rtrim($sortType,', ');
$query = "SELECT * FROM health_alerts_subscribers
WHERE FIND_IN_SET(Regions, $trimmedRegions)";
Любые идеи, как я могу добиться необходимого результата, пожалуйста?
FIND_IN_SET
должно работать. Можете ли вы поделиться, как он использовался и как он работал? Я бы пошел по нормализованному маршруту, данные с разделителями всегда будут вызывать проблемы. - person user3783243   schedule 22.02.2019FIND_IN_SET
для каждого отдельного значения.WHERE FIND_IN_SET(Regions, 'Middle East') and FIND_IN_SET(Regions, 'Global')
. Я бы сделал другую таблицу, которая имеет отношение к каждой записи. - person user3783243   schedule 22.02.2019