JSON_EXTRACT 和方括号

mar*_*rio 2 mysql json

我无法JSON_EXTRACT在 JSON 记录上使用 (mysql),例如:

[{"id": 156, "betas": [{"id": 324, "title": "mario", "gammas": [{"id": 190, "path": "file.png"}]}]}]
Run Code Online (Sandbox Code Playgroud)

特别是我无法进入最里面的方括号:

SELECT JSON_EXTRACT(main, '$[0].betas.$[0]') FROM mydb.mytable;
Run Code Online (Sandbox Code Playgroud)

返回NULL。我尝试了多种变体,但未能找到合适的。

我注意到SELECT JSON_EXTRACT(main, '$[0].betas') ...返回

[{"id": 324, "title": "mario", "gammas": [{"id": 190, "path": "file.png"}]}]  
Run Code Online (Sandbox Code Playgroud)

Bar*_*mar 5

$$[0]指的是 JSON 对象的根,位于路径中间是没有意义的。

尝试:

SELECT JSON_EXTRACT(main, '$[0].betas[0]') FROM mydb.mytable
Run Code Online (Sandbox Code Playgroud)

这应该返回

{"id": 324, "title": "mario", "gammas": [{"id": 190, "path": "file.png"}]}
Run Code Online (Sandbox Code Playgroud)