Mysql JSON 数组 查询获取下标并删除

Mysql JSON 数组 查询获取下标并删除

select id, data_list ,
json_unquote(json_search(replace(data_list,1765655803259392,concat('"',1765655803259392, '"')), 'one', 1765655803259392)) as i,
json_remove(data_list,json_unquote(json_search(replace(data_list,1765655803259392,concat('"',1765655803259392, '"')), 'one', 1765655803259392))) as r
from t_a 
where json_contains(data_list, concat(1765655803259392, '')) = 1;

在这里插入图片描述

1、遇到json_search()的一个小坑,示例如下:

1、数值类型查询不到
Mysql JSON 数组 查询获取下标并删除_第1张图片
2、文本类型就可以查询到
Mysql JSON 数组 查询获取下标并删除_第2张图片
3、使用json_contains()可以查询到
Mysql JSON 数组 查询获取下标并删除_第3张图片

总结

1、单纯做数组查询建议用json_contains()
2、需要更新数组,解索对应下标,需要把对应数值转为字符串,再使用json_search()获取下标

你可能感兴趣的:(json,mysql,数据库)