我正在查找从哪个json类型的列的表中获取数据的查询。
我的桌子看起来像:
`ID | ParentID | Details`
`-------------------------------------------------------------------------------------------`
`1 | 10 | {"_translated": {"en_US": {"is_draft": "false"}, "default_locale": "en"}}`
`2 | 20 | {"_translated": {"en_US": {"is_draft": "true"}, "default_locale": "en"}}`
`3 | 30 | {"_translated": {"en_CA": {"is_draft": "true"}, "default_locale": "en"}}`
`4 | 40 | {"_translated": {"en_CA": {"is_draft": "false"}, "default_locale": "en"}}`
我想取那些
is_draft = false
的行。请有人能帮我这个问题。
最佳答案
考虑到我们甚至不知道哪些键的子json对象的is_draft
设置为false
,这里的一个选项是将json转换为文本并使用LIKE
搜索它:
SELECT *
FROM yourTable
WHERE Details::text LIKE '%"is_draft": "false"%';
Demo