【发布时间】:2018-09-26 20:56:18
【问题描述】:
我在 PrestoDB 表 mytable 中有一个 json 列。这些行包含不同数量的键值对 - 有时键存在,有时键不存在,有时行中包含的 JSON 用引号括起来,有时则不是:
SELECT mycolumm from mytable
ORDER BY id DESC
LIMIT 3
{u'foo': 123, u'bar': u'abc', u'baz': 456}
{u'bar': u'abc'}
"{u'baz': 456}"
我的目标是只获取包含键 baz 的行的值
但是,以下方法不起作用:
SELECT
JSON_EXTRACT_SCALAR(mycolumn, '$["baz"]')
from mytable
WHERE JSON_EXTRACT_SCALAR(mycolumn, '$["baz"]') IS NOT NULL
ORDER BY id
DESC
它应该返回
456
456
但是查询没有返回任何内容。我究竟做错了什么?
【问题讨论】: