2017-08-07 9 views
0

JSONのすべてのプロパティ値を検索するクエリを作成する必要があります。テーブルのPOSTGRESQLでJSONを検索する9.5

例:

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

これらJSON形式の各々は、同じ表です。

たとえば、自分の検索テキストボックスに「27」と書き込むと、クエリではすべてのJSON値(プロパティではない)「27」という用語が検索されます。

検索テキストボックスに「contact_name」と書いても、結果は表示されません。私はここでSQLSERVER 2016年に

をこのクエリを作成するために管理

はクエリです:

私は同じことを行う必要があり

、または別の方法で、POSTGRESQL

答えて

0

一つの方法がありますjson_each_text機能

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

ちょうど注意:横結合は 'on true'と同様に文を必要とせず、' join'もオプションです。あなたは同じものを書くことができます。 '... FROM objectteepee t、json_each_text(previewcontent)j WHERE j.value = '27''です。 –

+0

@KristoMägi - はい、私はそのスタイルを好むだけです。 –

0

を使用するようにあなたのような何かができますこれは:

SELECT * 
FROM ObjectTeepee 
WHERE EXISTS (
    SELECT * FROM jsonb_each(previewContent) WHERE value='27' 
) 
関連する問題