Mysql JSON_EXTRACT() и алиас в path

Всем привет, имеется MYSQL 5.7 и таблица где в одном стобце имеется json с несколькими массивами.

[
  {
    "id": "158",
    "rank": 100,
  },
  {
    "id": "8861",
    "rank": 96,
  }
]

Я пытаюсь выцепить записи по значению id и отсортировать по rank После долгих изысканий у меня получилась следующая конструкция:

SELECT atg, JSON_EXTRACT(json, atg) as rank
 from (SELECT 
            REPLACE (JSON_SEARCH(json, 'all', '158', NULL, '$[*].id'), "id", 'rank') as atg,
            id, 
            json->'$[*].rank', json
            from table 
            WHERE JSON_SEARCH(json, 'all', '158', NULL, '$[*].id') is not null
      ) as list ORDER BY rank ASC

Получается с помощью replace() я найденое id превращаю в rank и использую это в качестве path в JSON_EXTRACT() Сам алиас получается корректным

"$[0].rank"

Но JSON_EXTRACT ни как не хочет его принимать говоря что

#3143 - Invalid JSON path expression. The error is around character position 1.

В общем вопроса два, как его заставить принимать алиас, и если есть альтернативный способ решения данной задачи, пожалуйста посоветуйте.

PS @atg:= Тоже без результата

Всех с наступающим!


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