【发布时间】:2016-06-16 02:44:14
【问题描述】:
我想在 Postgresql 中搜索记录。我有一个表,并且有一列被创建为文本数据类型(称为 A 列)。在 A 列中,我将数据保存为 JSON 数据类型。 例如:
ID A column
1 {"A1":["1"]}
2 {"A2":["2"], "B":["3"]}
我正在使用 Java 来搜索数据。我的条件搜索是“A1”:[“1”,“2”]。 我怎样才能搜索? 请帮我解决问题!
【问题讨论】:
-
你是如何使用java搜索数据的?为什么不使用 SQL?
SELECT * FROM table WHERE ("A column"->'A1') = '["1", "2"]'::json -
'A column' 数据类型是文本。当我在 SQL 上运行时,我收到一条错误消息:运算符不存在:文本 -> 未知。
-
您可以将其转换为 JSON:
SELECT * FROM table WHERE ("A column"::json->'A1') = '["1", "2"]'::json -
哦,不。还有错误-> 错误:运算符不存在:json = json
-
哦,是的,我忘了。这样
SELECT * FROM table WHERE ("A column"::json->>'A1') = '["1", "2"]'
标签: java postgresql search text