Mysql8之获取JSON字段的值

  • 2019 年 10 月 25 日
  • 筆記

    问题是这样的,接到一个需求:

        要从其它系统数据库中导出一些数据,发现其中有个字段的值是json字符串,而需求要的是该JSON字符串中某个key对应的value值。

    需求有了,这个如果只用SQL来处理,能否实现呢,SQL能否处理JSON数据呢,这个数据库是Mysql,看了下版本,发现是8.x,Mysql8中有json函数支持json的处理,so开工探索。

List-1

[    {      ...      "key": {        "innerKey": "This is test"        ...      },      ...    }  ]

    字段的json如List-1所示,对应的用json_extract函数,json_extract(列名称,'$[0].key.innerKey')这样就取出innerKey的值了。要注意的是该字段中不能含有非json字符串的值,不然json_extract会报错。如下List-2是SQL例子。

List-2

select column1,column2,json_extract(,'$[0].key.innerKey') as column3 from table

Reference

  1. https://dev.mysql.com/doc/refman/8.0/en/json-search-functions.html#function_json-extract

(adsbygoogle = window.adsbygoogle || []).push({});