mysql操作json,{"eventList":[{ "sourceId": 84,"eventType":"pre_event" },{ "sourceId": 69,"eventType":"pre_event" }]},将数组里所有的sourceId的值取反
时间: 2023-09-04 21:13:26 浏览: 47
可以使用MySQL中的JSON函数进行操作,具体的步骤如下:
1. 使用JSON_EXTRACT函数获取eventList数组。
```
SELECT JSON_EXTRACT('{"eventList":[{ "sourceId": 84,"eventType":"pre_event" },{ "sourceId": 69,"eventType":"pre_event" }]}', '$.eventList') AS eventList;
```
2. 使用JSON_SET函数将修改后的数组更新回原JSON对象。
```
SELECT JSON_SET('{"eventList":[{ "sourceId": 84,"eventType":"pre_event" },{ "sourceId": 69,"eventType":"pre_event" }]}', '$.eventList', JSON_REPLACE(JSON_EXTRACT('{"eventList":[{ "sourceId": 84,"eventType":"pre_event" },{ "sourceId": 69,"eventType":"pre_event" }]}', '$.eventList'), '$[0].sourceId', -84, '$[1].sourceId', -69)) AS json;
```
在上述语句中,我们使用了JSON_REPLACE和JSON_EXTRACT函数来获取和修改数组中的元素。具体来说,我们使用JSON_EXTRACT函数从原JSON对象中获取到eventList数组,然后使用JSON_REPLACE函数将数组中的每一个元素的sourceId属性都取反,最后再使用JSON_SET函数将修改后的数组更新回原JSON对象中。
注意,这里假设sourceId属性的值都是整数。如果实际情况中sourceId属性的值不是整数,需要根据实际情况进行修改。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)