我可以这样做:
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[])
但它不起作用。
答案 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