跟mybatisplus中.in()方法相反的函数 mybatisplus的in函数:查询的是数据库的某个属性的值是否在给定的集合中。这里我们讲的是一个值是否在数据库的某个属性数组中。 说明:这是一张学生信息表,其中包含了学生曾经就读过的学
跟mybatisplus中.in()方法相反的函数
说明:
这是一张学生信息表,其中包含了学生曾经就读过的学校。现在我们要做的就是查询哪些学生就读过指定的学校,根据学校id。
数据库属性对应的结构:
现在数据库有三个学校id。
LambdaQueryWrapper<Student> wrapper = new LambdaQueryWrapper<>();if (null != schoolId) { wrapper.apply("JSON_CONTAINS(school_id->\"$\", '[" + schoolId + "]')"); }
1.Student的实体类中schoolId如下图:
2.Mapper里的类型如下图:
3.数据库类型可以选‘varchar’也可以选‘JSON’。这里使用的是varchar。
4.schoolId是传进来的参数,因为数据库存的就是中括号‘[]’类型的,所以代码里拼接也是用的[]。
5.如果还有跟其他条件,直接使用wrapper继续进行其他操作。
申明:
这里我们讲的是Mysql的json 数组类型,数组中保存的类型是Integer。像这样的:[1456,5642,13465]。如果需要处理其他结构类型的数据请移步到:// List<Long> 存储 json 格式后的查询.apply("JSON_CONTaiNS(JSON_EXTRACT(order_id_list, '$.data[*]'), CONCAT('\"', {0}, '\"'))", orderId)// List<Integer> 存储 json 格式后的查询.apply("JSON_CONTAINS(JSON_EXTRACT(pass_node_codes, '$.data[*]'), {0})", passNode));
原文大致内容:
来源地址:https://blog.csdn.net/qq_42991839/article/details/130506624
--结束END--
本文标题: mysql数据库存数组类型数据,如何判断数组中是否包含某个值?使用mybatisplus查询。
本文链接: https://www.lsjlt.com/news/375628.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0