MySql получить список для каждого идентификатора в столбце, где идентификатор поиска является массивом

это мой первый вопрос по stackoverflow, пожалуйста, не стесняйтесь редактировать в правильном формате, я хочу написать запрос в mysql, который возвращает уникальный список всех найденных идентификаторов из таблицы, содержащей массив идентификаторов.

Например у меня есть таблица (event_tbl) который имеет три столбца

  1. Я бы
  2. peopleWhoWillAttend
  3. название события

Теперь скажем, у меня есть три строки из этих трех значений

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'

0

Решение

Рекомендуется использовать всю мощь базы данных, используя уникальные строки для 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')
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector