使用场景

查询文章的方法中有一个需求是根据Tag查询,tag标签在数据库中存储的是一个字符串数组,现在前端传入一个字符串数组或者一个字符串,判断数据库中存储的数组是否包含这个数组中的元素,之前用的是like方法判断,但是如果两个标签很像的话就会查到错误的数据。

解决方法

使用mysql中的FIND_IN_SET方法可以满足这个需求

//使用find_in_set判断参数是否在数组中
            queryWrapper1.lambda().in(Activities::getOriganizationId, ids)
                    .apply(!tag.isEmpty(), "FIND_IN_SET ('" + tag + "',label)");

调用接口测试

只传 第二 的话不会查到数据

tag取值 第二课堂 ,就可以正常查询到数据

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐