Mybatis复杂SQL语句

<!--返回这条sql插入的主键值 -->
<insert id="insert" useGeneratedKeys="true" keyProperty="id" parameterType="com.xxx.model.xxxx.xxx">
        INSERT INTO tb_supply_new
        (
            title,
            uid,
            industry_id,
            money,
            minimum,
            country_id,
            city_id,
            province_id,
            phone,
            company_id
        )
        VALUES
        (
            #{title},
            #{uid},
            #{industryId},
            #{money},
            #{minimum},
            #{countryId},
            #{cityId},
            #{provinceId},
            #{phone},
            #{companyId}
         );
</insert>
<select id="XXXXXXX" parameterType="XXXX"
            resultType="XXXXXXXXXXXX">
        SELECT
            tut.userid     AS userId,
            tcm.company_id AS companyId,
            IF(
                    tcm.company_manager = "Member"
                    OR tcm.company_manager = "Admin"
                    OR tcm.company_manager = "SuperAdmin",
                    TRUE,
                    FALSE
            )              AS isVerify
        FROM
            tb_user_token tut
            LEFT JOIN tb_company_manager tcm ON tut.userid = tcm.user_id
        WHERE
            tut.token = #{token}
</select>
<select id="xxxxx" parameterType="Long" resultType="String">
      SELECT
        IF( COUNT(tec.id) = 0 ,"N","Y")
        FROM tb_enterprise_card tec LEFT JOIN tb_enterprise_open_record teor ON teor.website_id = tec.id
        WHERE tec.user_id = #{userId}
        AND tec.website_status IN (0,6)
        AND teor.`status` = 1
    </select>
<select id="xxxxx" parameterType="Long" resultType="xxxxxx">
        SELECT
        tu.`userid` AS userId,
        tu.`username` AS userName,
        tu.`iconurl` AS iconUrl,
        tu.`companyname` AS companyName,
        tu.`job`,
        (CASE WHEN tu.industryid  IS NOT NULL AND tu.industryid > 0   THEN (SELECT i.name           FROM tb_industry i            WHERE i.id = tu.industryid)   ELSE '其他' END) AS industry,
        CONCAT(
            (CASE WHEN tu.province_id IS NOT NULL AND tu.province_id > 0  THEN (SELECT pp.province_name FROM tb_position_province pp  WHERE pp.id = tu.province_id) ELSE ''     END),
            (CASE WHEN tu.city_id     IS NOT NULL AND tu.city_id > 0      THEN (SELECT pc.city_name     FROM tb_position_city pc      WHERE pc.id = tu.city_id)     ELSE ''     END),
            (CASE WHEN tu.county_id   IS NOT NULL AND tu.county_id > 0    THEN (SELECT pco.county_name  FROM tb_position_county pco   WHERE pco.id = tu.county_id)  ELSE ''     END),
            (CASE WHEN tu.detail_address IS NOT NULL THEN tu.detail_address ELSE '' END)
        ) AS address
        FROM
        tb_user tu
        WHERE tu.userid = #{userId}
    </select>
<choose>
      <when test="@Ognl@isNotEmpty(websiteUrl)">
                
                <if test="@Ognl@isNotEmpty(websiteStatus)">AND (tnc.`website_status` = #{websiteStatus} OR
                    tnc.`website_status` = 4 OR tnc.`website_status` = 3 OR tnc.`website_status` = 6)
                </if>
            </when>
            <otherwise>
                <if test="@Ognl@isNotEmpty(websiteStatus)">
                    AND tnc.`website_status` = #{websiteStatus}
                    AND tnc.`website_name` is not null 
                    AND tnc.`company_name` is not null 
                    AND tnc.`company_address` is not null 
                    AND tnc.`company_synopsis` is not null  
                    AND tnc.`industry_id` is not null
                    AND tnc.`scale_id` is not null 
                    AND (SELECT COUNT(*) FROM tb_enterprise_product_certificate pro WHERE pro.enterprise_id = tnc.id AND
                    pro.type = 1) > 0 
                    AND (SELECT COUNT(*) FROM tb_enterprise_phone ph WHERE ph.enterprise_id = tnc.id) > 0 
                </if>
       </otherwise>
</choose>

猜你喜欢

转载自blog.csdn.net/qq_41154871/article/details/88205580