это мой первый вопрос по stackoverflow, пожалуйста, не стесняйтесь редактировать в правильном формате, я хочу написать запрос в mysql, который возвращает уникальный список всех найденных идентификаторов из таблицы, содержащей массив идентификаторов.
Например у меня есть таблица (event_tbl
) который имеет три столбца
Теперь скажем, у меня есть три строки из этих трех значений
id peopleWhoWillAttend eventName
1 [1] 'event1'
2 [1,2,3] 'event2'
3 [3] 'event3'
Теперь, если я ищу peopleWhoWillAttend [1,3] (это может быть более длинный массив не только [1,3]), он должен дать результат
id eventName
1 'event1'
2 'event2'
2 'event2'
3 'event3'
Или допустим, у меня есть ряд этих значений
id peopleWhoWillAttend eventName
1 [1,2,3] 'event2'
Теперь выберите так, чтобы получился результат
id peopleWhoWillAttend eventName
1 1 'event2'
1 2 'event2'
1 3 'event2'
Рекомендуется использовать всю мощь базы данных, используя уникальные строки для peopleWhoWillAttend.
Вместо ваших строк
Используйте уникальные строки для каждой записи:
id | peopleWhoWillAttend | eventName
-- | ------------------- | ---------
1 | 1 | event1
2 | 1 | event2
3 | 2 | event2
4 | 3 | event2
5 | 3 | event3
Таблица затем ищется
SELECT id, eventName
FROM *tablename*
WHERE peopleWhoWillAttend='1' OR peopleWhoWillAttend ='3'
Или с помощью
SELECT id, eventName
FROM *tablename*
WHERE peopleWhoWillAttend IN ('1','3')
Других решений пока нет …