【发布时间】:2021-06-16 15:32:16
【问题描述】:
我正在研究一种以 JSON 字符串形式存储在数据库中的数据结构。我正在使用 postgres 数据库。
我有一个名为 usersettings 的表。里面有两列。
一列是 id(主键并自动递增),另一列是设置(输入文本)。
设置列包含 JSON 格式的数据(参见下面的示例)
{
"SUBJECTS":[
"Maths","Physics"
],
"NAME":[
"Thomas"
],
"EMAIL_ADDRESS":"abc@xyz.com",
"CITY":[
"Newyork"
],
"USER_ID":3,
"TYPE":[
"Secondary"
]
}
这里,json数据包含json数组。我需要一个 select sql 查询,使用它我只能获取那些包含特定 USER_ID(在上面的示例中为 3)并且其主题包含数学的行。
【问题讨论】:
-
你很不走运,因为un-supported Postgres 9.1 版根本没有任何 JSON 支持。在没有任何内置函数的情况下解析 JSON 将是一场噩梦。在继续之前,请升级到最新的 Postgres 版本(12、13)
-
除了升级到更新版本的 postgres 之外,你还应该确保使用 jsonb 类型。
jsonb支持许多json不支持的操作。 postgresql.org/docs/13/functions-json.html
标签: java sql json postgresql postgresql-9.1