首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Postgresql (Java)中使用JSON进行搜索

问如何在Postgresql (Java)中使用JSON进行搜索
EN

Stack Overflow用户
提问于 2016-06-16 02:44:14
回答 1查看 571关注 0票数 2

我想在Postgresql中搜索记录。我有一个表,并有一个列,它作为文本数据类型(称为A列)创建。在一列中,我将数据保存为JSON数据类型。例如:

代码语言:javascript
复制
ID             A column
1              {"A1":["1"]}
2              {"A2":["2"], "B":["3"]}

我正在使用Java搜索数据。我的条件搜索是"A1":"1","2“。我怎么能搜索?请帮我解决问题!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-16 04:52:14

这条路:

代码语言:javascript
复制
CREATE TEMP TABLE tab (ID int, "A column" text);
INSERT INTO tab VALUES 
  (1, '{"A1":["1"]}'),
  (2, '{"A2":["2"], "B":["3"]}'),
  (3, '{"A2":["1","2"], "B":["3"]}');

SELECT * FROM tab WHERE ("A column"::json->>'A2') = '["1","2"]';

只有当"A column"中的所有值都被正确地格式化为json时,它才能工作。否则,您必须使用一个函数来捕获转换异常,当它是无效的json值时返回null。

​

​

更新

如果您希望一个集合中有一个值的所有字段,那么

代码语言:javascript
复制
SELECT * FROM tab 
WHERE ARRAY(select json_array_elements_text("A column"::json->'A2')::text)
        && ARRAY['1','2'];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37849036

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档