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。問題解決。