2

SELECT JSON_REMOVE(@I, '$.friends[*].name');または、以下 SELECT JSON_REMOVE(@I, '$.friends[*].friends');の JSON で、次のエラーが発生します。

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

4

1 に答える 1