在MySQL 5.7中弹出JSON数组中的最后一项

在MySQL 5.7中弹出JSON数组中的最后一项,mysql,arrays,mysql-json,Mysql,Arrays,Mysql Json,我在一个名为from的字段中找到了一个日期数组。它可以看起来像这样 ['2016-05-01', '2016-05-03', '2016-05-04'] 我想选择最后一项(此处2016-05-04) 我试过这个: SELECT `from`->"$[JSON_LENGTH(`from`) - 1]" FROM `table` WHERE `id` = 3; 但我犯了一个错误: ERROR 3143 (42000): Invalid JSON path expression. The e

我在一个名为from的字段中找到了一个日期数组。它可以看起来像这样

['2016-05-01', '2016-05-03', '2016-05-04']
我想选择最后一项(此处
2016-05-04

我试过这个:

SELECT `from`->"$[JSON_LENGTH(`from`) - 1]" FROM `table` WHERE `id` = 3;
但我犯了一个错误:

ERROR 3143 (42000): Invalid JSON path expression. The error is around character position 2.
我尝试过使用如下变量:

SET @count = (SELECT JSON_LENGTH(`from`) - 1 FROM `table` WHERE `id` = 3);
SELECT `from`->"$[@count]" FROM `table` WHERE `id` = 3;
但是得到了完全相同的错误。但如果我这样做:

SELECT `from`->"$[2]" FROM `table` WHERE `idx` = 3;
它工作正常。

您可以使用:

从“表”中选择JSON_提取(`from`,CONCAT($[”,JSON_长度(`from`)-1,”);

获取json数组中的最后一项。

我尝试了
从`table`中选择`from`->“$[-1]”,其中`idx`=3有相同的错误…您知道保留除最后一个元素之外的所有元素吗:)