【发布时间】:2016-04-27 12:35:39
【问题描述】:
我正在尝试从具有 true 值的 JSONB 类型中选择键。到目前为止,我设法使用此查询来做到这一点,但我觉得有更好的方法:
SELECT json.key
FROM jsonb_each_text('{"aaa": true, "bbb": false}'::JSONB) json
WHERE json.value = 'true';
我不喜欢WHERE 子句,我在其中比较strings。有没有办法将其转换为boolean?
如果是,它是否也适用于 truthy 和 falsy 值? (truthy 和 falsy 值在 javascript 中的解释:http://www.codeproject.com/Articles/713894/Truthy-Vs-Falsy-Values-in-JavaScript)。
【问题讨论】:
-
jsonb有一个相等运算符(=;不像json),所以你可以写FROM jsonb_each(...) json WHERE json.value = jsonb 'true'(jsonb_each_text()你依赖于一些 JSON 值的文本表示)。
标签: postgresql jsonb