2017-06-09 48 views
0

如何查詢JSON字段以在JSON的所有字段中搜索?使用PostgreSQL在所有JSON字段中搜索

id | JSON 
-------------------------- 
1 | {"name":"toto","age":25,"surname":"toto2"} 

我想對JSON的每場查詢,因爲我規劃的全局搜索功能,我需要例如在返回包含「TOTO」每一行的JSON。

我設法使用OPEN_JSON函數在SqlServer 2016中完成它。

這裏是我的代碼

SELECT DISTINCT * 
FROM ObjectsTable 
CROSS APPLY OPENJSON([JSON]) as tbValues 
WHERE tbValues.value like '%toto%' 

我需要做同樣的事情在Postgres的。

回答

4

本質上的Postgres相同,但cross applycross join lateral在SQL標準和Postgres的

select o.id, t.* 
from objectstable o 
    cross join lateral json_each_text(o.json) as t(k,val) 
where t.val like '%toto%'