逗号分隔的字段和逗号分隔的搜索数据

时间:2016-08-18 20:12:16

标签: postgresql

我可以这样做:

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 data = 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[])

但它不起作用。

1 个答案:

答案 0 :(得分: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

相关问题