mysql版本:mysql5.7,mysql5.8
工具:navicat
如果是mysql 5.7 以下版本,自行升级,5.7以下版本不支持json_extra函数的使用。
目前测试的sql语句:
select json_extract('{"name":"Zhaim","tel":"13240133388"}',"$.name");
测试工具:navicat;
有三个不同的版本:11.1.13 - 企业版、
11.1.13 - premium、
12.0.18(64-bit) - Premium
如下,启动图一样:
11.1.13 - 企业版、11.1.13 - premium 运行sql后结果栏没数据,点击数据表格,弹出框,而且是不停的弹出,挺恶心的,然后程序都退出了,如下图:
一开始我以为是mysql的问题,网上下了一个5.8,花了半天时间再虚拟机装了一个,用11.1.13 - 企业版、11.1.13 - premium测试sql语句还是弹出,于是我调出mysql原始界面测试。
先测试5.7,效果如下:
没有问题,再测试5.8(下面是shell 命令行界面):
也没问题,恍然大悟,应该是navicat的问题,于是打开第三个navicat:12.0.18(64-bit) - Premium,话说我怎么装了这么多navicat,结果:
所以,在mysql5.7以上的版本中,json_extra函数式没问题的,如果再弹出List index out of bound(-2),就换一个mysql客户端试试,比如navicat 12.0.18(64-bit) - Premium。问题解决。