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

Как упростить запрос?

Есть такая выборка

SET @k = '{ [{"color": "blue", "value": 15}, {"color": "red", "value": 30}] }';

JSON_UNQUOTE(JSON_EXTRACT(colors, JSON_UNQUOTE(REPLACE(JSON_SEARCH(colors, 'one', 'red'), '.color', ''))))


Задача по цвету получить весь массив данных.

Выглядит сложнова-то но суть такая, я через JSON_SEARCH ищу цвет red в поле color далее, чтобы подняться на уровень выше использую REPLACE, далее убираю скобки, тем самым получив путь в JSON, ну вытаскиваю данные через JSON_EXTRACT.
Всё работает но как-то громоздко, и вроде бы задача тривиальная по значению получить массив, возможно как-то проще сделать?

Пробовал несколько упростить синтаксически:
colors->>REPLACE(JSON_SEARCH(colors, 'one', 'red'), '.color', '')


но так не идёт
  • Вопрос задан
  • 102 просмотра
Подписаться 2 Простой 2 комментария
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы