есть поле типа VARCHAR[]
в нем есть {metro1,metro2, ... metroN}
есть php массив типа
$arr = [
metro3, metro10, metro11
];
нужно чтобы нашел все адреса где в ячейке таблицы есть хоть одно метро из массива php (из примера выше нужно что бы в выборку попали все у кого есть во VARCHAR массиве metro3, metro10 и metro11)
Вот как примерно пытаюсь сделать эту выборку (код не работает)
$sql = '
SELECT * FROM offer
WHERE IN('.implode($arr).') @> offer.metro';
// если вместо IN вставить одно значение, например 'metro1' то все норм
$sql = '
SELECT metro
FROM offer
WHERE metro @> '{Шаболовская}'';
// если сделать так то выберет именно те метро которые нужны, но только если у этого offer`a именно одно (искомое) метро а не несколько
$sql = '
SELECT metro
FROM offer
WHERE metro IN('{Шаболовская}','{Римская}','{Савеловская}','{Шаболовская}')';
// запрос выше выберет вот что:
{Шаболовская}
{Савеловская}
{Римская}
А если у offer`a будет два метро (одно из которых искомое а другое неискомое)
{Шаболовская,ЕщеКакоето}
то такой пользователь в выборку не попадет,
а вот если у пользователя просто одно метро (и оно искомое)
напр {Шаболовская}
и мы ищем Шаболовская
то такой пользователь в выборку попадет.
Как Построить запрос чтобы в выборку попали все пользователи если у него есть хоть одно искомое метро (искомые метро лежат в массиве php)?