MyBatis中动态SQL 多条件查询问题

需求:通过jsp页面传回来的loseType的值,if进行条件判断,当为7的时候查询的是表suv中的
seven_lose_users这一列的值。。。
<!--流失用户-->
<select id="getUserLoseListComplement" parameterType="java.util.Map" resultType="java.util.Map">
  
  SELECT
  dd.calendar,suv.active_users,
  /*7天流失用户*/
  <if test = 'loseType == "7"'>
    suv.seven_lose_users user_lose
  </if>
  /*14天流失用户*/
  <if test = 'loseType == "14"'>
    suv.fourteen_lose_users user_lose
  </if>
  /*30天流失用户*/
  <if test = 'loseType == "30"'>
    suv.thirty_lose_users user_lose
  </if>
  FROM
  (
  (
  (
  stats_user_version suv
  INNER JOIN dimension_date dd ON suv.date_dimension_id = dd.id
  )
  INNER JOIN dimension_app da ON suv.app_dimension_id = da.id
  )
  INNER JOIN dimension_platform dp ON suv.platform_dimension_id = dp.id
  )
  INNER JOIN dimension_channel dc ON suv.channel_dimension_id = dc.id
  WHERE
  dd.type = #{cycleType,jdbcType=VARCHAR}
  AND dd.calendar &gt;= #{startDate, jdbcType=DATE}
  AND dd.calendar &lt;= #{endDate, jdbcType=DATE}
  AND da.app_id = #{appId, jdbcType=VARCHAR}
  AND dp.platform_id = #{platformId, jdbcType=VARCHAR}
  AND dc.id = #{channelId, jdbcType=INTEGER}
</select>



阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页