登录
首页 >  数据库 >  MySQL

MyBatis Plus 如何使用 JSON_CONTAINS 精准匹配数据库中的 JSON 数组?

时间:2024-11-11 16:40:10 276浏览 收藏

一分耕耘,一分收获!既然都打开这篇《MyBatis Plus 如何使用 JSON_CONTAINS 精准匹配数据库中的 JSON 数组?》,就坚持看下去,学下去吧!本文主要会给大家讲到等等知识点,如果大家对本文有好的建议或者看到有不足之处,非常欢迎大家积极提出!在后续文章我会继续更新数据库相关的内容,希望对大家都有所帮助!

MyBatis Plus 如何使用 JSON_CONTAINS 精准匹配数据库中的 JSON 数组?

mybatis plus匹配纯数组与对象数组

对于数据库中存储的json数组,使用like匹配会出现精准度问题。本文介绍了如何使用mysql 5.7.8及其之后的版本的原生json数据类型支持,通过json_contains来实现精准匹配。

纯数组匹配

string tipid = "1617784249885577217";
wrapper.and(new consumer<querywrapper<object>>() {
    @override
    public void accept(querywrapper<object> querywrapper) {
        querywrapper.last("json_contains(goods_tips_id_list,'" + tipid + "')");
    }
});

对象数组匹配

由于前端传过来的数据是json字符串,直接使用json_contains无法实现对象数组的匹配。需要先将对象数组转换成json字符串,再进行匹配。

List<Long> tipIds = new ArrayList<>();
tipIds.add(1615226392250040321L);
tipIds.add(1617784249885577217L);
tipIds.add(1617784414117744641L);
String tipIdsJson = JSON.toJSONString(tipIds);

wrapper.and(new Consumer<QueryWrapper<Object>>() {
    @Override
    public void accept(QueryWrapper<Object> queryWrapper) {
        queryWrapper.last("json_contains(goods_tips_id_list,'" + tipIdsJson + "')");
    }
});

本篇关于《MyBatis Plus 如何使用 JSON_CONTAINS 精准匹配数据库中的 JSON 数组?》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于数据库的相关知识,请关注golang学习网公众号!

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>