Столбец Mysql JSON с любым индексом ([*] ) не работает

#mysql #json

#mysql #json

Вопрос:

У меня есть столбец JSON с именем prices_and_tags, в котором есть значения в массиве JSON:

 [{'price' => 100, 'tag' => 'Watch'}, {'price' => 200, 'tag' => 'Book'}]
 

Если я хочу выполнить поиск по тегам prices_tags, где tag = ‘Watch’ в любом индексе массива, это не работает.

Запрос выглядит следующим образом:

 select * from products where prices_and_tags->"$[*].tag" = 'Watch'
 

это дает 0 результатов.

Но этот запрос работает для первого или второго индекса массива, например:

 select * from products where prices_and_tags->"$[0].tag" = 'Watch'
 

Я ссылался на это: https://dev.mysql.com/doc/refman/5.7/en/json-path-syntax.html для синтаксиса запроса.

Спасибо.

Ответ №1:

Вы пробовали это сделать

 select * from products where prices_and_tags->"$.tag[*]" = 'Watch'
 

Ссылка: https://dev.mysql.com/doc/refman/5.7/en/json.html