首页 > 解决方案 > 是否可以获取和比较位于数据库中嵌套 Json 字符串格式列中的元素?通过 SQL 查询

问题描述

我有“唯一标识”。我想根据该唯一 ID 从表中获取记录。我有一个名为“请求正文”的列,其中包含一个文本类型的嵌套 json 字符串。有什么办法可以将 'unique-id' 与 json 字符串 cloumn 中的 'unique-id' 进行比较,即请求正文?

标签: javasqlpostgresqlspring-boot

解决方案


抱歉,我是stackoverflow的新手。对于寻找解决方案的任何人,以下是两种方法:

方法 1

SELECT t.request_body
FROM table t
WHERE cast(request_body as JSON) ->> 'uniqueId' ='123'

方法 2

SELECT t.request_body
FROM table t
WHERE (substr(t.request_body, position ('uniqueId' in request_body)+11,3) ='123'

注意:11代表' uniqueId":" '的长度,3代表后面的id 123


推荐阅读