最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mysql中order?by根據(jù)like查找關(guān)鍵字段設(shè)置權(quán)重排序的操作方法

 更新時(shí)間:2026年03月05日 09:16:49   作者:TTc_  
本文給大家介紹mysql中order?by根據(jù)like查找關(guān)鍵字段設(shè)置權(quán)重排序的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧

1.存在的問(wèn)題,應(yīng)該將普通號(hào)排在前面

2.造成問(wèn)題的原因

下面的Java代碼中對(duì)YSXM做了拼接,sql是對(duì)KSID做的排序,比如數(shù)據(jù)庫(kù)中YSXM的名稱在普通號(hào)的前面的話,根據(jù)Java代碼那么人名就會(huì)在前面后面普通號(hào)就被拼在了后面。

List<JSONObject> thisWeek = apiService.getListByApi(3258, param).getData();
            Map<String, List<JSONObject>> resultMap = new HashMap<>();
            //拼接醫(yī)師內(nèi)容
            HashMap<String, JSONObject> weekMap = new HashMap<>();
            for (JSONObject week : thisWeek) {
                String key = week.getString("KSID") + "|" + week.getString("RQ") + "|" + week.getString("BC");
                JSONObject js = weekMap.get(key);
                if (StringUtils.isNotEmpty(js)) {
                    //存在排班文檔時(shí)
                    js.put("YSXM", js.getString("YSXM") +"、"+ week.getString("YSXM"));
                    js.put("YSDM", js.getString("YSDM") +"、"+ week.getString("YSDM"));
                    weekMap.put(key, js);
                }else {
                    //不存在時(shí)
                    weekMap.put(key, week);
                }
            }
sql:
SELECT MZGH_NYSPB.ID
     , MZGH_NYSPB.YSDM
     , MZGH_NYSPB.YSXM
     , MZGH_NYSPB.ZBDM
     , MZGH_NYSPB.KSID
     , MZGH_NYSPB.KSMC
     , MZGH_NYSPB.XQJ
     , MZGH_NYSPB.RQ
     , MZGH_NYSPB.BC
     , MZGH_NYSPB.YYXE
     , MZGH_NYSPB.YYRS
     , MZGH_NYSPB.ZT
     , MZGH_NYSPB.BZ
     , MZGH_NYSPB.XQ
FROM MZGH_NYSPB WHERE TO_DATE(MZGH_NYSPB.RQ, 'yyyy/MM/dd') >= TO_DATE('2026-3-1', 'yyyy/MM/dd')
  AND TO_DATE(MZGH_NYSPB.RQ, 'yyyy/MM/dd') <= TO_DATE('2026-3-7', 'yyyy/MM/dd')
  AND JGDM = 66 
 --and ysxm like  '田%'
 --and ID = '11482722026/03/06下午'
  ORDER BY KSID

如圖所示:

3.修改后的sql:

SELECT MZGH_NYSPB.ID
     , MZGH_NYSPB.YSDM
     , MZGH_NYSPB.YSXM
     , MZGH_NYSPB.ZBDM
     , MZGH_NYSPB.KSID
     , MZGH_NYSPB.KSMC
     , MZGH_NYSPB.XQJ
     , MZGH_NYSPB.RQ
     , MZGH_NYSPB.BC
     , MZGH_NYSPB.YYXE
     , MZGH_NYSPB.YYRS
     , MZGH_NYSPB.ZT
     , MZGH_NYSPB.BZ
     , MZGH_NYSPB.XQ
FROM MZGH_NYSPB WHERE TO_DATE(MZGH_NYSPB.RQ, 'yyyy/MM/dd') >= TO_DATE('2026-3-1', 'yyyy/MM/dd')
  AND TO_DATE(MZGH_NYSPB.RQ, 'yyyy/MM/dd') <= TO_DATE('2026-3-7', 'yyyy/MM/dd')
  AND JGDM = 66 
  ORDER BY KSID,
         -- 關(guān)鍵修改:讓普通號(hào)排在前面
         CASE 
           WHEN YSXM LIKE '普通號(hào)%' THEN 0  -- 普通號(hào)排在最前
           ELSE 1                            -- 其他排在后
         END,
         YSXM 

4.這段排序語(yǔ)句的含義解析:

CASE 
  WHEN YSXM LIKE '%普通號(hào)%' THEN 0  -- 普通號(hào)排在最前
  ELSE 1                            -- 其他排在后
END,
YSXM  -- 同類型內(nèi)按姓名排序

1. 第一層排序:CASE WHEN表達(dá)式

  • 目的:創(chuàng)建一個(gè)臨時(shí)排序權(quán)重
  • 邏輯
    • 如果 YSXM字段包含"普通號(hào)",返回權(quán)重值 0
    • 其他情況(如"田文君"等醫(yī)生姓名),返回權(quán)重值 1
  • 效果ORDER BY會(huì)先按這個(gè)權(quán)重值排序,0在前,1在后,所以"普通號(hào)"會(huì)排在前面

2. 第二層排序:YSXM字段

  • 目的:在權(quán)重值相同的情況下,進(jìn)行二級(jí)排序
  • 為什么要加這個(gè)
    • 當(dāng)權(quán)重值相同時(shí)(比如有多個(gè)"普通號(hào)"記錄,或多個(gè)非"普通號(hào)"記錄),需要確定這些記錄之間的順序
    • 比如:如果有兩個(gè)"普通號(hào)"記錄,它們的權(quán)重值都是0,那么按字母順序排序這兩個(gè)"普通號(hào)"記錄
    • 再比如:如果有"張三"和"李四"兩個(gè)醫(yī)生,它們的權(quán)重值都是1,那么按姓名排序這兩個(gè)醫(yī)生

3.實(shí)際排序效果示例

假設(shè)數(shù)據(jù)如下:

ID  | YSXM
----|---------
1   | 普通號(hào)
2   | 田文君
3   | 普通號(hào)
4   | 李醫(yī)生
5   | 王醫(yī)生

排序過(guò)程

  • 先按權(quán)重值排序(普通號(hào)=0,其他=1):
    • 權(quán)重0:普通號(hào)、普通號(hào)
    • 權(quán)重1:田文君、李醫(yī)生、王醫(yī)生
  • 在權(quán)重相同的組內(nèi),再按YSXM字母順序排序:
    • 權(quán)重0組內(nèi)排序:普通號(hào)、普通號(hào)(兩者相同,按數(shù)據(jù)庫(kù)默認(rèn)順序)
    • 權(quán)重1組內(nèi)排序:李醫(yī)生、田文君、王醫(yī)生(按拼音/字母順序)

最終排序結(jié)果

普通號(hào)
普通號(hào)
李醫(yī)生
田文君
王醫(yī)生

4.如果不需要二級(jí)排序,可以簡(jiǎn)化

如果只需要保證"普通號(hào)"在前面,同一類型內(nèi)部的順序無(wú)所謂,可以去掉最后的YSXM

ORDER BY KSID,
         CASE 
           WHEN YSXM LIKE '%普通號(hào)%' THEN 0
           ELSE 1
         END

這樣會(huì)更快,但同一權(quán)重組內(nèi)的記錄順序可能不確定。

改完后展示就正常了

到此這篇關(guān)于mysql中order by根據(jù)like查找關(guān)鍵字段設(shè)置權(quán)重排序的操作方法的文章就介紹到這了,更多相關(guān)mysql order by權(quán)重排序內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL查詢緩存的小知識(shí)

    MySQL查詢緩存的小知識(shí)

    這篇文章主要介紹了MySQL查詢緩存的的相關(guān)資料,幫助大家更好的理解和使用MySQL數(shù)據(jù)庫(kù),感興趣的朋友可以了解下
    2020-12-12
  • MySQL中COUNT函數(shù)的使用小結(jié)

    MySQL中COUNT函數(shù)的使用小結(jié)

    在MySQL的數(shù)據(jù)統(tǒng)計(jì)場(chǎng)景中,COUNT()函數(shù)是使用率極高的工具,無(wú)論是統(tǒng)計(jì)表中記錄總數(shù),還是按條件聚合計(jì)數(shù),它都能輕松勝任,下面就來(lái)詳細(xì)的介紹一下
    2025-12-12
  • mysql如何查看當(dāng)前連接數(shù)

    mysql如何查看當(dāng)前連接數(shù)

    這篇文章主要介紹了mysql如何查看當(dāng)前連接數(shù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • MySQL?FLOAT不準(zhǔn)問(wèn)題解析

    MySQL?FLOAT不準(zhǔn)問(wèn)題解析

    在數(shù)據(jù)庫(kù)處理中,使用FLOAT類型存儲(chǔ)浮點(diǎn)數(shù)時(shí),由于二進(jìn)制表示的限制,會(huì)導(dǎo)致精度損失,解決方法包括使用DOUBLE或DECIMAL類型來(lái)提高精度,或避免使用浮點(diǎn)數(shù)進(jìn)行精確計(jì)算,感興趣的可以了解一下
    2024-09-09
  • MySQL命令行下18個(gè)常用命令

    MySQL命令行下18個(gè)常用命令

    在日常的網(wǎng)站維護(hù)和MYSQL數(shù)據(jù)庫(kù)管理中,會(huì)用到非常多的MYSQL命令,下面給大家介紹18個(gè)管理MYSQL數(shù)據(jù)庫(kù)時(shí)最常使用的命令
    2018-03-03
  • MySQL查看事務(wù)與鎖的操作示例小結(jié)

    MySQL查看事務(wù)與鎖的操作示例小結(jié)

    本文介紹了MySQL中事務(wù)和鎖的基本概念以及不同隔離級(jí)別下的鎖類型,并通過(guò)實(shí)際測(cè)試驗(yàn)證了這些鎖的使用情況,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2025-12-12
  • MySQL查看每個(gè)分區(qū)的數(shù)據(jù)量的查詢方法

    MySQL查看每個(gè)分區(qū)的數(shù)據(jù)量的查詢方法

    在MySQL中,分區(qū)表是一種將數(shù)據(jù)分割成更小、更易管理的部分的方法,通過(guò)分區(qū),可以顯著提高查詢性能和數(shù)據(jù)管理效率,在實(shí)際應(yīng)用中,了解每個(gè)分區(qū)中的數(shù)據(jù)量有助于優(yōu)化和監(jiān)控?cái)?shù)據(jù)庫(kù)性能,本文將介紹如何查看MySQL中每個(gè)分區(qū)的數(shù)據(jù)量,需要的朋友可以參考下
    2025-07-07
  • MySQL中的SHOW FULL PROCESSLIST命令實(shí)現(xiàn)

    MySQL中的SHOW FULL PROCESSLIST命令實(shí)現(xiàn)

    SHOW FULL PROCESSLIST命令是MySQL中一個(gè)非常有用的工具,可以幫助我們理解和監(jiān)控MySQL服務(wù)器的狀態(tài),本文主要介紹了MySQL中的SHOW FULL PROCESSLIST命令,感興趣的可以了解一下
    2023-11-11
  • MySQL 一次執(zhí)行多條語(yǔ)句的實(shí)現(xiàn)及常見(jiàn)問(wèn)題

    MySQL 一次執(zhí)行多條語(yǔ)句的實(shí)現(xiàn)及常見(jiàn)問(wèn)題

    通常情況MySQL出于安全考慮不允許一次執(zhí)行多條語(yǔ)句(但也不報(bào)錯(cuò),很讓人郁悶)。
    2009-08-08
  • mysql -參數(shù)thread_cache_size優(yōu)化方法 小結(jié)

    mysql -參數(shù)thread_cache_size優(yōu)化方法 小結(jié)

    以下是某門(mén)戶網(wǎng)站的mysql狀態(tài)實(shí)例及分析過(guò)程,絕對(duì)的第一手?jǐn)?shù)據(jù)資料,很生動(dòng)的體現(xiàn)了參數(shù)thread_cache_size優(yōu)化的效果及優(yōu)化該參數(shù)的必要性,希望對(duì)各位系統(tǒng)管理員能有幫助。
    2011-03-03

最新評(píng)論

新乐市| 湖口县| 大化| 明水县| 定结县| 化隆| 城固县| 扎囊县| 祁连县| 克什克腾旗| 郓城县| 乌拉特后旗| 嘉禾县| 玉田县| 泗洪县| 温宿县| 鄂伦春自治旗| 双江| 潢川县| 二连浩特市| 和平区| 卢龙县| 高邑县| 杭锦旗| 大安市| 七台河市| 龙山县| 海南省| 公安县| 白山市| 墨竹工卡县| 泗水县| 科尔| 剑川县| 新丰县| 绥宁县| 景德镇市| 南昌市| 陵水| 喜德县| 金堂县|