sql базы данных определяют массив - как таблицу т.е. нужен массив - делай связанную таблицу
table (id,member)
dates (table_id, date)
с созданным foreign key индексом dates.table_id -> table.id
соответственно когда запрашиваешь данные из table, то объединяй их с dates с помощью join (в зависимости от задачи left/right/inner join)
select distinct table.id, table.member from table left join dates on table.id-dates.table_id where dates.date=18
вернет одну записи из table если у них есть связанные dates со значением 18
distinct убирает дубликаты (так как left join выдает умножение таблиц, дублируя данные table для каждой новой записи dates)
p.s. когда то давно, там где говнокодить можно, я хранил массивы, сериализовав их тексте через разделитель ';', добавив его даже для первого элемента (т.е. ';18;19'), тогда запросив
select * from table where dates like '%;18%'
можно получить то что тебе нужно, но это очень неэффективно