问题是这样的,接到一个需求:
要从其它系统数据库中导出一些数据,发现其中有个字段的值是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
(adsbygoogle = window.adsbygoogle || []).push({});