choose标签是按顺序判断其内部when标签中的test条件出否成立,如果有一个成立,则 choose 结束。
当 choose 中所有 when 的条件都不满则时,则执行 otherwise 中的sql。
<select id="isUserLiked" resultType="java.lang.Integer"> select count(1) from community_likes <where> <if test="storyId != null"> and story_id = #{storyId} </if> <choose> <when test="commentId != null"> and comment_id = #{commentId} </when> <otherwise> and comment_id is null </otherwise> </choose> <if test="userId != null"> and user_id = #{userId} </if> </where> limit 1 </select>