如何将一堆用逗号分隔的字符串与 Postgres 中的无序字符串输入进行比较

How to compare a bunch of strings separated by coma with unorder string input in Postgres

catalog
----------------------------------
id   title     keywords
----------------------------------
1    Title-1   k2,k1,k3,k4,k5
2    Title-2   k1,k3,k5,k6

如何通过将关键字与我的输入进行比较来 select 行 k1,k2,k5

在上面的例子中,id 为 1 的行必须出现。

我会将 keywords 列和输入都转换为数组,然后使用 @> 运算符检查前者是否包含后者:

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

DBFiddle