问题描述:
当时写了一个mysql函数,主要是处理json对象数组数据,然后首先要循环json数组,然后发现
jsonarray->>'$[i].educationalLevel' 这个语法竟然是错误的,按正常来说不应该异常。

报错信息如下:

解决过程:
我猜测是变量i导致的, 于是将jsonarray->>'$[i].educationalLevel'改为了如下:
JSON_UNQUOTE(JSON_EXTRACT(jsonarray,CONCAT('$[',i,'].technicalTitles')));
->> 等同于JSON_UNQUOTE(JSON_EXTRACT()); 这两个没区别,重点是 这个变量i可能没有被识别成数字,所以这里使用了CONCAT将变量i分开了写,于是便可以了。
在MySQL中编写了一个处理JSON对象数组的函数,遇到一个问题:使用jsonarray->$[i].educationalLevel语法时出现错误。经过分析,怀疑是变量i未被识别为数字。解决方案是将表达式改为JSON_UNQUOTE(JSON_EXTRACT(jsonarray,CONCAT($[,i,].technicalTitles))),通过CONCAT函数确保变量i作为数字部分正确插入路径中,从而解决了问题。
4745

被折叠的 条评论
为什么被折叠?



