У меня есть таблица, в которой есть столбец с вложенными данными JSON, которые я хочу прочитать для результата запроса. Но тип данных столбца VARCHAR, а данные внутри - это строка JSON с вложенными объектами внутри.
Теперь, когда я нажимаю на запрос ниже, он работает нормально и дает мне результат,
select * from dataTable where regexp_like(metadata,'(*)"id":"33001"(*)');
Ниже приведен столбец метаданных dataTable:
{"id":"33001",
"digits":"1234",
"requestId":"5d54-f6-48-8d-8155190",
"deliveryMethod":"ATT",
"messageStatus":"{\"status\":[
{\"tokenId\":\"Zktx\",\"deliveryStatus\":\"SUCCESS\",\"code\":\"0\"},
{\"tokenId\":\"aGsx\",\"deliveryStatus\":\"SUCCESS\",\"code\":\"0\"}
]}"
}
Выше данных - все String в одном столбце метаданных, я разделил их, чтобы они были более читабельными.
Но я также хочу отфильтровать данные по содержанию «deliveryStatus». Поэтому, когда я пытаюсь выполнить запрос ниже,
select * from dataTable where regexp_like(metadata,'(*)"id":"33001"(*)') AND regexp_like(metadata,'(*)\"deliveryStatus\":\"SUCCESS\"(*)');
Это не работает. НЕ показывает никакого результата. Там нет ошибки, хотя. Мне кажется, мне нужен какой-то другой подход для чтения вложенного содержимого JSON внутри этой строки. Но я не уверен, как это сделать.
Может ли кто-нибудь рассказать о том, как этого добиться?