|
Выборка данных из JSON
|
|||
---|---|---|---|
#18+
Привет Всем! Подскажите пожалуйста как сделать выборку из JSON? JSON представляет из себя следующее: Модератор: Если Вас реально интересует решение этого вопроса, то сформулируйте его без употребления нецензурной лексики. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2019, 11:39 |
|
Выборка данных из JSON
|
|||
---|---|---|---|
#18+
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. Помогите пожалуйста! ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2019, 13:01 |
|
Выборка данных из JSON
|
|||
---|---|---|---|
#18+
Bogatyrесли условие убрать, то скрипт возвращает ВСЕ значения Number, а нужны только те, что > 3Судя по тексту - те, у кого длина более 3 символов... BogatyrА если с условием, то возвращает NULL Правильно. Тебе возвращается массив. Его надо разобрать на элементы, и только потом применять условие отбора. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2019, 14:33 |
|
Выборка данных из JSON
|
|||
---|---|---|---|
#18+
Akina, вы знаете как это сделать одним запросом? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2019, 14:39 |
|
Выборка данных из JSON
|
|||
---|---|---|---|
#18+
Увы, нет. Я не работал с JSON (да и морозит меня с него - уж больно с ним всё не по-человечески). А экспериментировать тупо лень. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2019, 16:09 |
|
Выборка данных из JSON
|
|||
---|---|---|---|
#18+
Akina, Понятно, спасибо, буду дальше экспериментировать, может кто ещё поможет...) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2019, 16:15 |
|
Выборка данных из JSON
|
|||
---|---|---|---|
#18+
автор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 Спасибо за помощь) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2019, 11:10 |
|
|
start [/forum/topic.php?fid=47&msg=39873381&tid=1828927]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
60ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
others: | 317ms |
total: | 470ms |
0 / 0 |