使用POSTGRESQL 9.5在JSON中搜索

时间:2017-08-07 12:08:07

标签: sql json postgresql

我需要创建一个查询来搜索JSON的所有属性值。

表格示例:

mysqldump --user="$user" --password="$password" --host="$host" $db $tabl > "./backups/$db/$db-$tabl-$time"

这些JSON格式中的每一种都在同一个表中。

例如在我的应用中,如果我写" 27"在我的搜索文本框中,查询将搜索术语" 27"的所有JSON值(而不是属性)。

如果我写" contact_name"在搜索文本框中,我没有结果。

我设法在SQLSERVER 2016中创建了这个查询

以下是查询:

 ID --- ObjectType --- JSON
 1        Client      {"name":"John","age":27}
 2        Contact     {"contact_name":"Henry","contact_city":"New York"}

我需要在POSTGRESQL

中执行相同或其他方式

2 个答案:

答案 0 :(得分:0)

一种方法是使用json_each_text函数

select ObjectTeepee.* from ObjectTeepee
join  lateral json_each_text(JSON) j
on true
where
j.value = '27'

答案 1 :(得分:0)

你可以这样做:

SELECT *
FROM ObjectTeepee
WHERE EXISTS (
    SELECT * FROM jsonb_each(previewContent) WHERE value='27'
)