Помогите с выборкой из mysql по ключу JSON

Коллеги, прошу помощи. Есть таблица mySQL, в которой есть N записей формата id(bigint), name (varchar) и options (JSON). Структура данных для options у всех элементов примерно такая:

[
  {
    "value": "1000",
    "option": "echo"
    } ,
  {
    "value": "123",
    "option": "id"
    } ,
  {
    "value": "2",
    "option": "test"
    }
  ]

Нужен запрос, который выведет id всех элементов таблицы, где value для ключа test >= 2


Ответы (1 шт):

Автор решения: Дмитрий Шамонов

Разобрался сам. JSON_EXTRACT не работает с повторяющимися ключами без "родительского ключа".

привел структуру JSON к такому виду:

{ "prm1": { "value": "10", "option": "test" }, "prm2": { "value": "390х140х390", "option": "Размер" } }

$sql = "SELECT * FROM table WHERE JSON_EXTRACT(options, '$.prm1.value') >= 2 AND JSON_EXTRACT(options, '$.prm1.option') = 'test' ";

Запрос работает отлично.

→ Ссылка