В моей таблице MySQL 8.0 у меня есть столбец JSON ARRAY. Это массив объектов JSON. Я хочу выбрать один объект из массива каждой строки на основе пар ключ-значение в объектах.
Пример строки:
[{bool:false, number:0, value:'hello'},
{bool:true, number:1, value:'world'},
{bool:true, number:2, value:'foo'},
{bool:false, number:1, value:'bar'}]
То, что я пытаюсь сделать, это получить 'значение' ГДЕ bool = true, И number = 1. Поэтому я хочу запрос, который в этом примере возвращает «мир».
Что бы сработало, если бы я мог получить индекс объекта, где bool = true и number = 1, в этом примере он вернул бы '$ [1]'.
Я пытаюсь выполнить запрос по всему столбцу, установив в новом столбце значение, возвращаемое из запроса. Возможно ли это с функциями MySQL JSON? Я просмотрел ссылки, но ни у одного из них нет объектов внутри массивов, как в моем примере.
РЕДАКТИРОВАТЬ: Если я делаю
SELECT JSON_SEARCH(column->"$[*]", 'all', '1');
SELECT JSON_SEARCH(names->"$[*]", 'all', 'true');
Я получаю пути / индексы объектов, где число = 1 и где bool = true, соответственно. Я хотел бы, чтобы эти два результата совпали.