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、数值类型查询不到
2、文本类型就可以查询到
3、使用json_contains()可以查询到
总结
1、单纯做数组查询建议用json_contains()
2、需要更新数组,解索对应下标,需要把对应数值转为字符串,再使用json_search()获取下标