Mybatis <choose>标签的使用:多条独立sql,选择执行

这篇博客介绍了如何在Mybatis中使用<choose>标签来根据条件执行不同的SQL语句,以满足在统计模块如会员、登录、注册和活跃人数时,根据模块动态切换不同表和字段的需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

demo:

本人项目的使用的需求场景:

统计每日:会员,会员登入,会员注册,会员活跃,的总数,接口返回的栏位都是total,date,module,只不过模块不一样使用的表和获取数据的字段的不同;(供参考)

<select id="analytics" resultType="map">

<choose>
<when test="module == 'AMOUNT'">  <!-- 执行的条件-->
SELECT updatedAt,total,'AMOUNT' AS 'module' FROM table1 m
WHERE m.`updatedAt` >= DATE_SUB(CURDATE(),INTERVAL #{interval} DAY)
</when>
<when test="module == 'LOGIN'">
SELECT SUM(d.count) AS 'total','LOGIN' AS 'module' ,d.`updatedAt` FROM table2 d WHERE
d.`action`='LOGIN' and d.`updatedAt` >= DATE_SUB(CURDATE(),INTERVAL #{interval} DAY) GROUP BY DATE_FORMAT(updatedAt,'%Y%M%d')
</when>
<when test="module == 'REGISTER'">

SELECT SUM(d.count) AS 'total', 'REGISTER' AS 'module',d.`updatedAt` FROM table3 d WHERE
d.`action`='REGISTER' and d.`updatedAt` >= DATE_SUB(CURDATE(),INTERVAL #{interval} DAY) GROUP BY DATE_FORMAT(updatedAt,'%Y%M%d')

</when>

                        <when>...</when>...

</choose>
</select>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值