postgresql - PostgreSQL - JSONB 在 WHERE
问题描述
我有一个定义为 JSONB 的字段,但实际上它只有文本(不,我不能将类型更改为解决方案)。
这个查询:
SELECT value FROM property WHERE id = 1;
返回这个:
-[ RECORD 1 ]--
value | "IP"
现在,我想通过这个值进行查询,例如 SELECT value FROM property WHERE value = 'IP'。我尝试了几种不同的转换 (value::TEXT = 'IP', value::VARCHAR = 'IP'),但它们都没有返回任何结果。执行此查询的正确方法是什么?
解决方案
SELECT value
FROM property
WHERE value = to_jsonb('IP')
如果您更喜欢转换value
为字符串,那么您必须修复您的右侧并通过"IP"
而不是IP
. 但是,如果右侧实际上不是固定的(即IP
可能的值以外的值),那么您将必须正确地对其进行转义,例如A"B
实际值将是"A\"B"
. 因此,我建议我最初的解决方案(它会解决这个问题)。
推荐阅读
- postman - 请求url中的邮递员路径参数=
- r - 隐藏 UI 元素:当 UI 元素放置在 taglist 下时,闪亮的应用程序崩溃
- javascript - 我想做一个随机数选择器,但结果高于预期
- flutter - 如何表示
在颤振中使用typedef之类的别名作为函数? - powerbi - 编写查询 REST API 的 ODBC 驱动程序或 OleDb 提供程序
- r - 确定一个值的位置是否相对于它之前的关联发生了变化
- c - 在 .h 与 .c 文件中定义函数
- swift - 如何从已知图像路径显示图像 - SwiftUI
- tensorflow - TensorFlow 是否依赖于 systemd?
- reactjs - 如何通过映射material-ui网格组件添加json