2016-08-18 102 views
1

我可以这样做:逗号分隔的领域和逗号分隔的搜索数据

SELECT id, name, data FROM public.app 
WHERE data=ANY(string_to_array('25,2,3,15', ',')::character varying[]) 

这是正常工作。但数据字段varchar和它将保存逗号分隔的数据。总之,

搜索数据= 25,2,3,15 db.field数据= 3,0,2,15,3,15等等都包括逗号分隔的数据。

我试试这个:

SELECT id, name, data FROM public.app 
WHERE string_to_array(data,',')=ANY(string_to_array('25,2,3,15', ',')::character varying[]) 

,但它无法正常工作。

回答

0

如果不正确,您当前正在比较两个使用ANY的阵列。

如果你想看看这两个阵列在它们的内容是相同的,你可以简单地删除ANY

string_to_array(data,',') = (string_to_array('25,2,3,15', ',')::character varying[]) 

如果你愿意,你用&&,看看是否有两个数组之间的重叠:

string_to_array(data,',') && (string_to_array('25,2,3,15', ',')::character varying[]) 

其他运营商都可以在这里:https://www.postgresql.org/docs/current/static/functions-array.html

+0

十分感谢..这是工作。 – user5504616