mysql - 如何获取 MySQL JSON 数组中的最后一个元素?

标签 mysql json

我最近有时间升级到 MySQL 5.7,我正在测试新的 JSON functions .到目前为止,非常棒!

我有一个用例,我需要访问 JSON 数组中的最后一个元素。当您知道像这样的序号时,检索元素很容易:

SELECT `json_field`->"$.my_array[0]" from `my_table` where `id` = 1;

但是如果您不知道有多少元素,则无法使用。现在,您可以找出(并存储)有多少元素是这样的:

set @arrayLength = (SELECT JSON_LENGTH(`json_field`->"$.my_array") from `my_table` where `id` = 1);

但是当你去使用这个变量的时候,你并没有得到一个结果。

SELECT `json_field`->"$.my_array[@arrayLength - 1]" from `my_table` where `id` = 1;

有没有人用 MySQL 5.7 解决过类似的问题?

最佳答案

SELECT JSON_EXTRACT(`json_field`,CONCAT("$.my_array[",JSON_LENGTH(`json_field` ->> '$.my_array')-1,"]")) from `my_table` where `id` = 1;

found here

关于mysql - 如何获取 MySQL JSON 数组中的最后一个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44404855/

相关文章:

mysql - 使用mysql从表中获取最新记录

mysql - phpmyadmin mysql 触发器语法错误

json - 如何使用 Jackson 2.2.3 忽略 "Is' 方法

json - Post/Put/Delete http Json with additional parameters in Jersey + 一般设计问题

javascript - Angular.JS $http API 请求

mysql - mysql 中几何列的 col in() 子句

mysql - 将内连接与左连接的结果相结合

MySQL UPDATE 将数据追加到列中

java - 是否需要 httpPost.setHeader ("Accept"、 "application/json")和 httpPost.setHeader ("Content-type"、 "application/json")?

python - NVD - 使用 Python 将 JSON 转换为 CSV