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:= Тоже без результата
Всех с наступающим!