从 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
我有一个名为 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