Mybatis中添加重复语句,统计总和

场景:添加字段时,重复字段不需要报错

<insert id="ywords">
INSERT INTO test (id,p_id,word,start_date,end_date,creator)
VALUES
<foreach collection="words" item="word" separator=", ">
(#{Id}, #{Id}, #{word}, #{startDate}, #{endDate}, #{userName})
</foreach>
ON DUPLICATE KEY UPDATE id=#{Id},start_date=#{startDate},end_date=#{endDate},updater=#{userName}
</insert>

场景二:分组统计所有t_id的总和
<select id="getListCount" resultType="com.web.bean.Total">
select count(1) as totNum, sum(num) as totRNum, sum(d_num) as totDNum
from (
select t_id, max(r_num) num, max(d_num) d_num
from table
where word IN (<foreach collection="words" item="word" separator="," > #{word} </foreach>)
<if test="read != -1"> AND read=#{read} </if>
group by t_id
) raw
</select>

场景三:统计work相关的数据,并将work进行组合展示
id word gg
eg :1 王 2班
1 名 2班
where work in (王,名) return-> 1 王,名 2班

<select id="getTopi" resultType="com..web.bean.ic">
select id, group_concat(keyword) keyword, max(gg) gg
from table
where word IN (<foreach collection="words" item="word" separator="," > #{word} </foreach>)
<if test="gg!= -1"> AND gg=#{gg} </if>
group by id
limit 3 desc
LIMIT #{pageSize} OFFSET ${(pageNo - 1) * pageSize}

</select>






posted @ 2021-08-26 15:45  tomsen_jin  阅读(212)  评论(0编辑  收藏  举报