在MySQL 5.7中弹出JSON数组中的最后一项
我在一个名为from的字段中找到了一个日期数组。它可以看起来像这样在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
['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代码>有相同的错误…您知道保留除最后一个元素之外的所有元素吗:)