postgresql - Postgresql jsonb选择具有差异顺序的对象
问题描述
我的表中有一个带有这个 jsonb 的列
{"parcelas": "[{"valor": "2136,45", "parcela": 75, "vencimento": "15/06/2019"}, {"valor": "2097,61", "parcela": 76, "vencimento": "15/07/2019"}, {"valor": "2058,33", "parcela": 77, "vencimento": "15/08/2019"}, {"valor": "2191,07", "parcela": 78, "vencimento": "15/09/2019"}]}"
当我比较一个相等的对象但没有空格或其他顺序时,是否可以找到该行?样本
SELECT * FROM myTable where myJsonBField ->> 'parcelas' = '[{"vencimento":"15/06/2019","valor":"2136,45","parcela":75},{"vencimento":"15/07/2019","valor":"2097,61","parcela":76},{"vencimento":"15/08/2019","valor":"2058,33","parcela":77},{"vencimento":"15/09/2019","valor":"2191,07","parcela":78}]'
是“相同”的对象,但顺序不同,并且元素之间的空间更小。
tks
解决方案
只需使用->
which 给出 ajsonb
而不是text
and =
。
SELECT *
FROM mytable
WHERE myjsonbfield->'parcelas' = '[{"vencimento":"15/06/2019","valor":"2136,45","parcela":75},{"vencimento":"15/07/2019","valor":"2097,61","parcela":76},{"vencimento":"15/08/2019","valor":"2058,33","parcela":77},{"vencimento":"15/09/2019","valor":"2191,07","parcela":78}]'::jsonb;
推荐阅读
- java - 从相机拍摄照片后,如何将所有像素的颜色更改为灰度?
- javascript - 如何通过在反应中使用传播操作来设置状态
- python - 我为 boto3 upload_fileobj 使用哪个用户 ID?
- ruby-on-rails - 脏(已更改)属性:从什么时候开始更改集字符串中的值(而不是对象)?
- c# - 打开约会项目时显示自定义任务窗格(会议发生和个人会议)
- javascript - Node js和chart js数据可视化
- woocommerce - 仅针对 Woocommerce 上的特定产品 ID 自动完成付费订单
- html - Django 嵌套视图
- visual-studio - 发布过程在 Visual Studio 2017 中花费了太多时间
- tensorflow - 如何在 Tensorflow Serving 中为 TensorRT 模型配置 ModelConfig.txt