powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выборка данных из JSON
7 сообщений из 7, страница 1 из 1
Выборка данных из JSON
    #39873233
Bogatyr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет Всем!
Подскажите пожалуйста как сделать выборку из JSON? JSON представляет из себя следующее:
Модератор: Если Вас реально интересует решение этого вопроса, то сформулируйте его без употребления нецензурной лексики.
...
Рейтинг: 0 / 0
Выборка данных из JSON
    #39873314
Bogatyr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
JSON{"@class": "Name.Of.Class, "member": "666", "Members": [{"values": ["111", "222", "333"], "Type": "BIG", "Number": "111111", "Count": 50, "BIGUnit": 50}, {"values": ["111", "222", "333"],"BIGType":"BIG","Number": "111", "Count": 10, "BIGUnit": 10}, {"values": ["111", "222", "333"], "BIGType": "BIG", "Number": "222", "Count": 10, "BIGUnit": 10}, {"values": ["111", "222", "333"], "BIGType": "BIG","Number": "333", "Count": 10, "BIGUnit": 10}, {"values": ["111", "222", "333"], "BIGType": "BIG", "Number": "333333", "Count": 10, "BIGUnit": 10}], "ID": "07"}

Необходимо выдать все значения Number > 3.

Пробовал вот такой скрипт:

СкриптSELECT
c_date AS cd,
JSON_UNQUOTE(JSON_EXTRACT(jsonc,"$.Members[*].Number")) AS rep,
id AS did
FROM reports
WHERE length(JSON_UNQUOTE(JSON_EXTRACT(jsonc,"$.Members[*].Number"))) > 3;

c_date - Дата, jsonc - таблица с JSON, id есть id.

Причем если условие убрать, то скрипт возвращает ВСЕ значения Number, а нужны только те, что > 3. А если с условием, то возвращает NULL.

Помогите пожалуйста!
...
Рейтинг: 0 / 0
Выборка данных из JSON
    #39873381
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bogatyrесли условие убрать, то скрипт возвращает ВСЕ значения Number, а нужны только те, что > 3Судя по тексту - те, у кого длина более 3 символов...

BogatyrА если с условием, то возвращает NULL
Правильно. Тебе возвращается массив. Его надо разобрать на элементы, и только потом применять условие отбора.
...
Рейтинг: 0 / 0
Выборка данных из JSON
    #39873386
Bogatyr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina, вы знаете как это сделать одним запросом?
...
Рейтинг: 0 / 0
Выборка данных из JSON
    #39873467
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Увы, нет. Я не работал с JSON (да и морозит меня с него - уж больно с ним всё не по-человечески). А экспериментировать тупо лень.
...
Рейтинг: 0 / 0
Выборка данных из JSON
    #39873475
Bogatyr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina, Понятно, спасибо, буду дальше экспериментировать, может кто ещё поможет...)
...
Рейтинг: 0 / 0
Выборка данных из JSON
    #39874474
Bogatyr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторSELECT cte1.cdate AS cd,
JSON_UNQUOTE(JSON_EXTRACT(cte1.rep, CONCAT('$[', cte2.num, ']'))) AS rep,
cte1.id AS did
FROM ( SELECT cdate,
id,
JSON_EXTRACT(jsonc,"$.Members[*].Number") AS rep
FROM reports ) cte1,
( SELECT help_keyword_id num
FROM mysql.help_keyword ) cte2
HAVING LENGTH(rep) > 3

Спасибо за помощь)
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выборка данных из JSON
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]