MySQL Извлечение JSON из запроса выбора с двумя реляционными таблицами - PullRequest
0 голосов
/ 07 апреля 2020

Привет! Я работаю над запросом выбора, который объединяет две реляционные таблицы с информацией о клиентах. Поле с именем 'options' содержит много JSON информации.

Я нашел похожую статью, но не могу заставить ее работать в контексте существующего запроса, и сервер выдает функцию сообщения об ошибке ' JSON_EXTRACT 'не существует. При дальнейшем рассмотрении мы обнаружили, что сам сервер не имеет функции JSON_EXTRACT.

Можно ли просто использовать%% между двумя строками?

т.е. выбирать между {"TransactionID": "и "}

просто интерпретируем JSON сами, а не полагаемся на функцию сервера.

Вот запрос

select u.Email, u.Name, up.Type, up.Name, up.Price, up.options from users_packages 
inner join users u on up.UserID = u.id

Поле опций показывает это значение, например :

{"TransactionID": "4G631007P6080114Y39840"}

Я ищу запрос, который даст мне только значение, то есть '4G631007P6080114Y39840' и извлечет JSON из TransactionID. Обратите внимание, что некоторые другие элементы json могут быть иными, чем TransactionID

Спасибо!

См. { ссылка }

1 Ответ

1 голос
/ 07 апреля 2020

попробуйте что-то вроде этого JSON_EXTRACT (ваше JSON, "$ .fieldname")

select u.Email, u.Name, up.Type, up.Name, up.Price, JSON_EXTRACT(up.options, "$.TransactionID") from users_packages inner join users u on up.UserID = u.id 

здесь вы увидите, как работает json_extract https://dev.mysql.com/doc/refman/8.0/en/json-search-functions.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...