我发现了这个查询:
SELECT properties->'somekey' IS NOT DISTINCT FROM 'someValue' FROM myTable;
在PostgreSQL 9.5中有效,但在9.4中没有,它给出了这个错误:
错误:运算符不存在:hstore - >布尔
因此,显然->
运算符的运算符在版本之间发生了变化。事实是,我在文档中找不到这个(甚至应该的优先级)。
有人可以对此有所了解吗?
答案 0 :(得分:0)
我对相同的错误消息一度感到困惑。问题是Postgres首先评估'somekey' IS NOT DISTINCT FROM 'somevalue'
,然后使用该语句产生的布尔值作为在properties
中查找的关键字,从而产生错误。您只需要更改
SELECT properties->'somekey' IS NOT DISTINCT FROM 'someValue' FROM myTable;
到
SELECT (properties->'somekey') IS NOT DISTINCT FROM 'someValue' FROM myTable;
以便该代码根据“ SQL标准”进行评估。