sql多条件order By并且加入置顶查询

导读:本篇文章讲解 sql多条件order By并且加入置顶查询,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

需求分析

对于文章的管理中有一个置顶的需求,有一个按照时间排序的需求

设计

有一个置顶字段,专门去区分是否置顶的字段

难点

主要是怎么在sql中去将置顶的查出来,避免在业务代码中不必要的操作

主要的代码如下

  order by
        sa.sort Desc,
        // 重点
        CASE when sa.is_top = 1 THEN 0 ELSE 1 END

例子

<select id="getArticleInfos" resultMap="SitecontentArticleVO">
        SELECT st.article_id,
        st.article_title,
        st.publish_status,
        st.article_auther,
        st.update_date,
        st.create_date,
        /*适用站点json*/
        st.site_ids,
        /*审核状态*/
        st.check_status,
        st.article_source_type,
        st.is_top,
        st.sort,
        sac.article_category_name,
        sac.article_category_id,
        sacj.article_category_join_id
        FROM sitecontent_article st
        LEFT JOIN sitecontent_article_category_join sacj ON st.article_id = sacj.article_id
        LEFT JOIN sitecontent_article_category sac ON sacj.article_category_id = sac.article_category_id
        AND sac.is_del = 0
        <where>
            st.is_del = 0
            <if test="articleTitle != null and articleTitle != ''">
                AND st.article_title LIKE CONCAT( '%', #{articleTitle}, '%' )
            </if>
            <if test="articleCategoryIds != null">
                <foreach collection="articleCategoryIds" item="articleCategoryId"
                         open="AND sac.article_category_id IN (" separator="," close=")">
                    #{articleCategoryId}
                </foreach>
            </if>
            AND st.sys_inner_id = #{sysInnerId}
        </where>
        ORDER BY
        // 多条件order by
        CASE when st.is_top = 1 THEN 0 ELSE 1 END,
        st.create_date Desc,
        st.sort Desc
	 // 上面是错的注意顺序(先正常的一些排序在置顶)
  order by
        sa.sort Desc,
        CASE when sa.is_top = 1 THEN 0 ELSE 1 END
    </select>

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/96187.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!