网站首页 > 技术文章 正文
最近做项目遇到个类似收藏的需求(不能被取消)涉及两个表 用户表sys_user 商品表goods,项目已经上线是二次开发 如果添加中间表就需要维护旧数据(不考虑) 表结构类似如下
一、
1.首先想到的是用 IN()
SELECT good_name FROM goods WHERE id IN (1,2,3,4)
2.使用GROUP_CONCAT()函数拼接结果
持久层用的mybatis 将字符串‘1,2,3,4’ 转化成(1,2,3,4)代码如下
最后
将XXXX替换成 上述代码结果就变成
注意红框 看到这我就有一种不好的预感
mybatis在使用foreach的时候最关键的也是最容易出错的就是collection属性
看了mybatis文档关于collection的说明 我就把上述代码给干掉了 -_-! (想知道结果,感兴趣的 可以试下 ,因为我也好奇能不能行得通)
二、
没错 我还有其他方法 就是FIND_IN_SET(param1, param2)函数
1 . FIND_IN_SET的定义可以看下方链接
https://www.cnblogs.com/mytzq/p/7090197.html
2. 当param1 是一个表的字段时 类似IN(集合)
直接上结果
持久层代码中避免了感人的 foreach
让自己感动
猜你喜欢
- 2024-10-25 云祺& Oracle网络研讨会,与国内备份厂商首次线上联合
- 2024-10-25 在 Oracle 的跟踪文件(.trc 文件)中,"PARSING IN CURSOR" 含义
- 2024-10-25 oracle密码过期 oracle 密码过期
- 2024-10-25 DHL将关键业务流程迁移到Oracle Fusion Cloud Applications Suite
- 2024-10-25 Oracle为Oracle Fusion Cloud Applications Suite新增强大的AI功能
- 2024-10-25 All In ai,Oracle 23C没了,等来了Oracle 23ai
- 2024-10-25 oracle数据库中INITCAP()、LOWER()与UPPER()函数的用法
- 2024-10-25 Oracle 锁以及几种锁模式 oracle锁定
- 2024-10-25 MyBatis的几种批量操作,有必要掌握
- 2024-10-25 oracle迁移mysql时in和exists如何迁移及为什么不建议使用子查询
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- oracle面试 (55)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)