gpt4 book ai didi

postgresql - hstore 运算符优先级在版本之间发生了变化

转载 作者:行者123 更新时间:2023-11-29 12:18:01 24 4
gpt4 key购买 nike

我发现这个查询:

SELECT properties->'somekey' IS NOT DISTINCT FROM 'someValue' FROM myTable;

在 PostgreSQL 9.5 中有效,但在 9.4 中无效,它给出了这个错误:

ERROR: operator does not exist: hstore -> boolean

因此,显然 -> 运算符的运算符前缀在版本之间发生了变化。问题是,我在文档中找不到这个(或者甚至应该的优先级是什么)。

任何人都可以阐明这一点吗?

最佳答案

同样的错误消息让我一度感到困惑。问题是 Postgres 首先评估 'somekey' IS NOT DISTINCT FROM 'somevalue' 然后使用从该语句产生的 bool 值作为在 properties 中查找的键,从而产生错误。你只需要改变

SELECT properties->'somekey' 与 myTable 中的 'someValue' 不同;

SELECT (properties->'somekey') IS NOT DISTINCT FROM 'someValue' FROM myTable;

以便代码根据“SQL 标准”进行评估。

关于postgresql - hstore 运算符优先级在版本之间发生了变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42345868/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com