我正在查找从哪个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

10-07 12:52
查看更多