Как проверить, содержит ли какая-либо строка в массиве любую другую строку (подстроку) в другом массиве? (PostgreSQL) - PullRequest
0 голосов
/ 17 февраля 2020

У меня есть 2 строковых массива, и я хочу сравнить, если какая-либо строка первого массива - содержит SUBstring из другого, который хранит эти SUBstrings.

Другими словами: я не хочу полностью сравнивать эти массивы и их строки, мне нужно точно определить, содержит ли строки из одного массива строки SUB из другого массива.

1 Ответ

0 голосов
/ 17 февраля 2020

Вы можете использовать следующий подход, если два массива не слишком велики:

SELECT * FROM
    (SELECT unnest('{apple pie,sugar,brown sugar}'::varchar[]) a1) t1,
    (SELECT unnest('{pie,sugar}'::varchar[]) a2) t2
    where t1.a1 like ('%' || t2.a2 || '%')

В противном случае я предлагаю вам использовать ts_vectors и операторы полнотекстового поиска: https://www.postgresql.org/docs/current/textsearch.html

...