Есть такая выборка
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', '')
но так не идёт