从 Table 中提取 JSON 值

Extract JSON Value from Table

我有一个名为 genres 的 MariaDB table,其中包含这些列(genres 是一个 JSON 列):

+----+------------------------------------+
| id | genres                             |
+----+------------------------------------+
| 1  | ["Action", "Martial Arts", "Love"] |
+----+------------------------------------+

如果我查询:

SELECT JSON_EXTRACT( (SELECT genres.genres FROM genres), '$[2]' );

我得到:

"Love"

这是正确的。但是如果我尝试使用 JSON_EXTRACT() 快捷箭头运算符,-> :

SELECT genres.genres->"$[2]" FROM genres;

我得到:

错误代码:1064。您的 SQL 语法有误;查看与您的 MariaDB 服务器版本对应的手册,了解在第 1 行

的 '>"$[1]" FROM genres' 附近使用的正确语法

为什么我不能使用箭头运算符?我的语法或数据有问题吗?为什么只有当我用 JSON_EXTRACT()?

长途操作时它才有效

-> 路径 ->> path 运算符在 MariaDB-10.2、10.3 甚至 10.4 中都不支持。

对于您的情况,这可能是更短的版本

SELECT JSON_EXTRACT( genres , '$[2]' ) FROM genres