zoukankan      html  css  js  c++  java
  • MySQL中<choose>标签的用法

    先给大家来个SQL语句:

    choose (when,otherwize) ,相当于java 语言中的 switch ,与 jstl 中 的 choose 很类似。

    <select id="getMemberInfo" resultType="java.util.Map" parameterType="java.util.Map" >
            SELECT
            att.address,
            m.id,
            m.sex AS sex_type,
            m.nickname,
            m.focus_num,        <!-- 关注的用户数量 -->
            m.following_num,    <!-- 粉丝数量 -->
            m.consulation_num,    <!-- 收藏内容数量 -->
            m.user_type,        <!-- 0普通  1认证后用户可以发布访谈 口述 -->
            <choose>
                <when test="login_member_id!=null">
                (select  count(*)  from alq_member_follow mf where  m.id=mf.member_id and  #{login_member_id}=mf.member_following_id and (mf.is_delete=0 or mf.is_delete is null)) as isFocus
                </when>

        <!-- when元素表示当 when 中的条件满足的时候就输出其中的内容,跟 JAVA 中的 switch
                效果差不多的是按照条件的顺序,当 when 中有条件满足的时候,就会跳出 choose,
                即所有的 when 和 otherwise 条件中,只有一个会输出,当所有的我很条件都不满足的时候就输出
                otherwise 中的内容。所以上述语句的意思非常简单, 当login_member_id!=null 的时候就输出 isFocus,
                不再往下判断条件,当所有条件都不满足的时候就输出 otherwise 中的内容。 -->
                <otherwise>
                 0 as isFocus
                </otherwise>
            </choose>
            FROM `alq_member` m
            LEFT JOIN alq_attachment att ON att.id = m.logo_attachment_id
            WHERE m.id=#{member_id}
        </select>

    这里面有 <choose>的用法,记录一下,choose (when, otherwise)标签

    有时候我们并不想应用所有的条件,而只是想从多个选项中选择一个。而使用if标签时,只要test中的表达式为 true,就会执行 if 标签中的条件。MyBatis 提供了 choose 元素。if标签是与(and)的关系,而 choose 是或(or)的关系。

    choose标签是按顺序判断其内部when标签中的test条件出否成立,如果有一个成立,则 choose 结束。当 choose 中所有 when 的条件都不满则时,则执行 otherwise 中的sql。类似于Java 的 switch 语句,choose 为 switch,when 为 case,otherwise 则为 default。

    这样就很容易看懂了

  • 相关阅读:
    Java垃圾收集算法
    Java回收方法区中回收的类
    Android 聊天软件客户端
    Android 面试
    基于Android的简单聊天工具-服务器端
    Java多线程
    业务序号重排序
    Dubbo异步转同步
    Dubbo加权轮询负载均衡算法应用之推荐产品
    Linux文件句柄数配置
  • 原文地址:https://www.cnblogs.com/wangzn/p/7092915.html
Copyright © 2011-2022 走看看