Задать вопрос

Как распарсить строку средствами sql?

Добрый день.
Имеется строка таково вида в столбце с типом text
[{"name":"Новая технологическая карта","uniq_id":"139305ded184a2ea6c","deleted_table":"0","current":[{"competencies":["3947"],"learning-activities":"2","classroom":"1","valuation-tools":["10","32"],"points":"20","deleted":"0"},{"competencies":["3948"],"learning-activities":"5","classroom":"2","valuation-tools":["2"],"points":"50","deleted":"0"},{"competencies":["3948"],"learning-activities":"2","classroom":"1","valuation-tools":["11","32"],"points":"30","deleted":"0"}],"total_point_current":"100","total_point_premium":"0","type_control":"1","point_exams":"0","total_point":"100"}]


Как её распарсить с помощью sql, чтобы получить массивы valuation-tools из каждой подстроки? Такое извращение, потому что нужно отгрузить данные напрямую из бд. Воспользоваться php или python - нет возможности
  • Вопрос задан
  • 388 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
Enokin
@Enokin
Full-stack разработчик
Это может быть сделано с использованием функции SQL JSON_EXTRACT(). Например, следующий запрос выберет массив valuation-tools из каждой подстроки в столбце text_column:

SELECT JSON_EXTRACT(
  JSON_EXTRACT(text_column, '$[*].current[*]'),
  '$[*]."valuation-tools"'
)
FROM table_name;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 дек. 2024, в 10:44
15000 руб./за проект
22 дек. 2024, в 10:12
10000 руб./за проект
22 дек. 2024, в 09:51
3000 руб./за проект