Если я делаю: SELECT JSON_REMOVE(@I, '$.friends[*].name');
ИЛИ SELECT JSON_REMOVE(@I, '$.friends[*].friends');
на рисунке JSON, я получаю это сообщение об ошибке:JSON_REMOVE для array.array результатов в «пути выражения не могут содержать * и ** токенов» Error
ERROR 3149 (42000): In this situation, path expressions may not contain the * and ** tokens.
JSON :
SET @I = '{
"name": "Alice",
"friends": [
{
"name": "Bob",
"friends": [
{
"name": "Carl",
"friends": []
},
{
"name": "Danny",
"friends": []
}
]
},
{
"name": "Edward",
"friends": [
{
"name": "Frank",
"friends": []
},
{
"name": "Gary",
"friends": []
}
]
}
]
}';
Однако если я SELECT JSON_EXTRACT(@I, '$.friends[*].friends')
возвращает результаты в порядке.
[[{"friends": [], "name": "Carl"}, {"friends": [], "name": "Danny"}], [{"name": "Frank", "friends": []}, {"name": "Gary", "friends": []}]]
В основном я хочу, чтобы вернуть строку со всеми friends.name
удалены и, возможно, даже friends.friends
удалены.