sql - Postgres : How to search for a value on _all_ fields in an object in a json-type column without knowing the keys

标签 sql json postgresql

在 Postgres 数据库中,我有一个 jsonb 类型的列,其中包含一个我无法预测其键的通用对象:

{"some_key":"value", "another_unpredictable_key":"another value}

是否可以在不知道键的情况下在所有字段中搜索特定值? ……喜欢

select * from ... where column_whatever->>'*' = '...'

最佳答案

您需要将 json 值转换为多行(键/值对)并在结果中搜索:

select * 
from some_table t 
where exists (select * 
              from jsonb_each_text(t.jsonb_column) as x(ky,val)
              where x.val = 'some value');

jsonb_each_text()为每个顶级键/值对返回一行。这不处理嵌套键。

关于sql - Postgres : How to search for a value on _all_ fields in an object in a json-type column without knowing the keys,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55606895/

相关文章:

mysql - Ruby on Rails : order records with null value

sql - 管理分层数据 "error :REPEAT' 不是可识别的内置函数名称。”

mysql - 以 10s、20s 等为一组返回标记行

java - 使用 Jackson 反序列化为 Map

ios - NSJSONSerialization - 与 JSON 的核心数据关系

java - 如何创建一个基于 java 的应用程序,该应用程序将从网站获取输入

python - docker-compose psql 无法连接到服务器

sql - 如果条件为假,是否优化了条件子查询?

postgresql - 如何使用 go 在 PostgreSQL 中传递条件参数?

ruby-on-rails - Heroku、Postgresql、composite_primary_keys