У меня есть столбец json в таблице PrestoDB mytable
.Строки содержат различное количество пар ключ-значение - иногда ключи присутствуют, а иногда ключи отсутствуют, а иногда 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
Но запрос ничего не возвращает.Что я делаю неправильно?