Как сравнить кучу строк, разделенных запятой, с неупорядоченным вводом строк в Postgres - PullRequest
0 голосов
/ 06 декабря 2018
catalog
----------------------------------
id   title     keywords
----------------------------------
1    Title-1   k2,k1,k3,k4,k5
2    Title-2   k1,k3,k5,k6

Как выбрать строки, сравнив ключевые слова с моим вводом k1,k2,k5

В этом примере выше должна появиться строка с id: 1.

1 Ответ

0 голосов
/ 06 декабря 2018

Я бы преобразовал столбец keywords и входные данные в массивы, а затем проверил бы, содержит ли первый последний, используя оператор @>:

SELECT *
FROM   catalog
WHERE  STRING_TO_ARRAY(keywords, ',') @> STRING_TO_ARRAY('k1,k2,k5', ',')

DBFiddle

...