如何将一堆用逗号分隔的字符串与 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', ',')
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', ',')