为什么这段代码会给我错误(postgresql JSONB)?
错误:函数jsonb_exists_any(jsonb,integer[])不存在 第1行:从存在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\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]);