我最近抽空升级到 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/