mysql 字段指定值靠前排序方法,多字段排序排序方法


背景:SEO下選擇某查詢條件 查詢展示信息為裝修設計師以及設計師作品。設計師原型設計為:選擇某風格 例如:簡約,則列表出現擁有簡約風格的設計師信息以及該設計師類型為簡約的作品(3條靠前記錄)

  瀏覽原型后發現問題:若不選擇風格時,直接 sor t瀏覽量完事。但是選擇某項之后 要在前端體現選擇作用,就和設計商量選擇之后把選擇中的風格靠前其他靠后 於是就變成了order by 指定字段指定值,默認排序字段

貼SQL:

 SELECT
       -- 展示信息
    FROM
        查詢表 awi
    WHERE
      1 = 1
     ORDER BY <if test="style != null and style != '' and style != '0'"> (CASE WHEN style_code = #{style,jdbcType=VARCHAR} THEN 1 WHEN style_code LIKE CONCAT('%',#{style,jdbcType=VARCHAR},'%') THEN 2 ELSE 3 END ), </if> create_time DESC, browsing_amount DESC LIMIT 0, #{limitEnd}

重點: ORDER BY 

 (CASE WHEN style_code = #{style,jdbcType=VARCHAR} THEN 1 WHEN style_code LIKE CONCAT('%',#{style,jdbcType=VARCHAR},'%') THEN 2 ELSE 3 END ),create_time DESC,browsing_amount DESC
格式:在ORDER BY 之后判斷指定字段指定值 並且把符合條件的設置為 sort 的 1排序判定 后面加上正常的業務排序就是按照不選擇風格的sort方法
如果是多字段的話 可做成:ORDER BY 字段名1 = '值' desc ,字段2 = '值' desc ,字段3 = '值' desc
備注:多字段排序規則 我暫時沒理解透徹,如有不合理地方 請諒解
 
        

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM