Извлечение JSON из неизвестного ключа массива

0

У меня есть структура - посетители столбца

[{"firstname":"john","lastname":"penn"},{"firstname":"mickey","lastname":"smith"},{"firstname":"darth","lastname":"vader"}]

Я хотел бы узнать, есть ли среди всех этих людей Джон среди этих людей.

Мои запросы не находят ничего (строки не найдены)

SELECT conference_name FROM conference WHERE JSON_EXTRACT(visitors, "$[*].firstname") = 'john';

Можно ли достичь этого только с помощью json_extract и NOT json_search, поскольку он очень медленный с большими таблицами?

  • 0
    откуда берется «список»?
  • 0
    @SimonFranzen исправлено, чтобы быть более понятным. Конференция - стол, посетители - колонка с JSON всех посетителей.
Показать ещё 1 комментарий
Теги:

1 ответ

0

Как упоминалось в документах:

mysql> SELECT c, JSON_EXTRACT(c, "$.firstname"), g
 > FROM jemp
 > WHERE JSON_EXTRACT(c, "$.firstname") = 'john';

или в вашем случае вы можете попробовать

SELECT conference_name FROM conference WHERE JSON_EXTRACT(visitors, "$.firstname") = 'john';

или же?

SELECT conference.conference_name FROM conference WHERE JSON_EXTRACT(conference.visitors, "$.firstname") = 'john';
  • 0
    Не работает, по-прежнему возвращается 0 строк. Как вы можете видеть в моем случае, есть таблица в качестве группы верхнего уровня, ваше решение работает только тогда, когда есть только один из каждого ключа - только один объект json. В моем случае это практически несколько одинаковых структурированных объектов в одном массиве - $ [object_number_inside_array] .objectkey
  • 0
    ок вау ты прав что, поиск в массиве ?? Вы видели этот пост stackoverflow.com/questions/36346252/…

Ещё вопросы

Сообщество Overcoder
Наверх
Меню