Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么这段代码会给我错误(postgresql JSONB)?_Sql_Postgresql - Fatal编程技术网

为什么这段代码会给我错误(postgresql JSONB)?

为什么这段代码会给我错误(postgresql JSONB)?,sql,postgresql,Sql,Postgresql,错误:函数jsonb_exists_any(jsonb,integer[])不存在 第1行:从存在jsonb的货物中选择*(参数->“性别”, 啊 调用存在的函数,jsonb\u exists\u any不存在。你为什么认为jsonb\u exists\u any存在?这只是一个打字错误吗 SELECT * FROM goods WHERE jsonb_exists_any(params->'sex', array[1, 2, 3, 4, 5]) 查找函数 我猜你想要这个

错误:函数jsonb_exists_any(jsonb,integer[])不存在 第1行:从存在jsonb的货物中选择*(参数->“性别”, 啊


调用存在的函数,
jsonb\u exists\u any
不存在。你为什么认为
jsonb\u exists\u any
存在?这只是一个打字错误吗

SELECT  * 
FROM    goods 
WHERE   jsonb_exists_any(params->'sex', array[1, 2, 3, 4, 5])
查找函数

我猜你想要这个

SELECT  * 
FROM    goods 
WHERE   jsonb_exists_any(params->'sex', array[1, 2, 3, 4, 5])

可能是因为函数
jsonb\u exists\u any()
不存在?您的Postgres版本是什么?运行
select version()
查找outLook Postgres文档
jsonb\u exists\u any()
不是一个有文档记录的
jsonb
函数。它可能是一些
jsonb
操作符的支持函数,但依赖这些名称不是一个很好的主意(它们可能会随着时间而改变)。无论如何,所有
jsonb
操作符和函数都使用
text[]
参数,而不是
int[]
参数。尝试使用
数组['1','2','3','4','5']
(或使用
数组[…]:text[]
)进行显式强制转换。@pozs您可以看到他显式调用它。这听起来像是一个延伸。PostgreSQL中的所有运算符都有一个别名函数。
jsonb_存在\u存在任何
并且可以用来代替
SELECT  * 
FROM    goods 
WHERE   params->'sex' = ANY(ARRAY[1, 2, 3, 4, 5]);