如何从具有数组的列中按单词选择行?

6 浏览
0 Comments

如何从具有数组的列中按单词选择行?

我有一个包含字符串数组的列。我尝试选择在该列中包含特定单词的项目,但是我遇到了这个错误:

函数 contains(character varying[], unknown) 不存在

这是我的选择查询:

SELECT "schedule", COUNT("schedule") AS "count" 
FROM "members" AS "member" 
WHERE contains("member"."facility_id", 'DEMO') 
GROUP BY "schedule"; 

0
0 Comments

问题的出现原因是想要从一个包含数组的列中选择包含特定单词的行。解决方法是使用PostgreSQL中的contains操作符(@>)来测试一个字符串数组是否包含特定元素。如果要测试单个值,还可以使用any操作符。通过以下代码可以实现:

WHERE member.facility_id @> array['DEMO']

WHERE 'DEMO' = ANY(member.facility_id)

感谢!第二种方法已经解决了问题。

0