【发布时间】:2018-05-11 08:57:08
【问题描述】:
问题是如何在 PostgreSQL 的多级 JSON 列中搜索(使用LIKE 语句)。
我想通过name 进行搜索,它位于en 或任何其他列支持的语言中。
表:
places
-------
id ascii_name translations
dsrsfdsf be-namor { "en":{"locale":"en","name":"Namur"},"de":{"locale":"de","name":"Namur"},"bg":{"locale":"bg","name":"Намюр"} }
s3drs2es be-mouscron { "en":{"locale":"en","name":"Mouscron"},"pl":{"locale":"pl","name":"Mouscron"},"de":{"locale":"de","name":"Mouscron"} }
我刚刚找到了一种使用json_object_keys的方法,但是它会导致我无法在WHERE语句中使用set-returning函数的错误。
SELECT * FROM places p WHERE p.translations->json_object_keys(p.translations)->'name' LIKE '%Namur%'
错误:
[0A000] 错误:WHERE 中不允许设置返回函数
提前谢谢你!
【问题讨论】:
标签: json postgresql multi-level