Возникла проблема с JSON/MEMSQL. Вот моя таблица:
CREATE TABLE `MEMSQLPOLYGLOT` (
ID BIGINT AUTO_INCREMENT,
`DATA` JSON NULL,
PRIMARY KEY (ID)
);
Вот запись, которую я пытаюсь прочитать:
insert into MEMTEST (DATA) values
('
{
"EnterpriseMessage" :
{
"Body" :
[
{
"AccountNumber":"ABCD",
"AdminCompany":null,
"BrokerNumber":"WWonka"
},
{
"AccountNumber":"CSNE",
"AdminCompany":null,
"BrokerNumber":"ZWiza"
}
],
"Header" :
{
"mimetye":"application/vnd.ms-powerpoint",
"destinationsystem":"ETL",
"requiresack":"FALSE",
"SimpArr":
[
"BYTS6181",
"EVU98124",
"Genesys"
],
"EmptyFile":1
}
}
}
');
Я могу прочитать массив SimpArr в заголовке.
SELECT DATA::EnterpriseMessage::Header::SimpArr from MEMTEST;
Возвращает:
["BYTS6181","EVU98124","Genesys"]
Я также могу передать ключевой индекс, чтобы получить конкретное значение, например:
select JSON_EXTRACT_JSON(DATA::EnterpriseMessage::Body, 1) from MEMTEST;
Это возвращает второе значение SimpArr, так как это индекс с отсчетом от нуля.
Я также могу прочитать массив объектов в теле:
select JSON_EXTRACT_JSON(DATA::EnterpriseMessage::Body, 0) from MEMTEST;
который возвращает первый объект в этом массиве:
{
"AccountNumber":"ABCD",
"AdminCompany":null,
"BrokerNumber":"WWonka"
}
Однако я не могу найти способ прочитать отдельные атрибуты этого объекта.
У кого-нибудь есть идеи?