站長資訊網
        最全最豐富的資訊網站

        MySQL少有人知的排序方式

        免費學習推薦:mysql視頻教程

        ORDER BY 字段名 升序/降序,相信進來的朋友都認識這個排序語句,但遇到一些特殊的排序,單單使用字段名就無法滿足需求了,下面給大家介紹幾個我遇到過的排序方法:

        一、準備工作

        為了更好演示與理解,先準備一張學生表,加入編號、姓名、成績三個字段,插入幾條數據,如圖:
        MySQL少有人知的排序方式

        二、條件排序

        需求一:成績從高到低進行排序

        街邊賣菜的阿姨都能敲,直接使用 ORDER BY examScore DESC 輕松完成了(如下左圖)。

        需求二:成績從高到低進行排序,并且沒錄入成績的排在最前面

        客戶體驗最重要,為了方便二次錄入成績,提出這樣的需求純屬正常。要實現該排序,上面的語句是無法實現的,因此就需要用到條件排序,先判斷成績為空賦個最大值,再進行排序,如 ORDER BY IF(examScore IS NULL,101,examScore) DESC 也能輕松實現(如下右圖)。

        需求 需求一 需求二
        語句 ORDER BY examScore DESC ORDER BY IF(examScore IS NULL,101,examScore) DESC
        效果 MySQL少有人知的排序方式 MySQL少有人知的排序方式

        三、自定義排序

        客戶如上帝,需求花里胡哨也屢見不鮮,就比如,要求張三李四排在最前面,其他學生按照成績從高到低進行排序。這種情況就需要使用自定義排序了,MySQL 自帶的 FIELD 函數(返回對應字符串的索引)可幫您實現。

        語句一:
        ORDER BY FIELD(studentName,‘張三’,‘李四’) ASC, examScore DESC;

        上面語句運行結果卻把張三李四排到最后了(如下左圖),順理成章的,要把張三李四編排到最前面就進行降序排序。

        語句二:
        ORDER BY FIELD(studentName,‘李四’,‘張三’) DESC, examScore DESC;

        結果果然正中下懷(如下右圖)。

        語句 語句一 語句二
        效果 MySQL少有人知的排序方式 MySQL少有人知的排序方式

        后來發現 FIND_IN_SET 函數也能實現,而且使用100萬條數據測試,FIND_IN_SET 性能更優。

        ORDER BY FIND_IN_SET(studentName,‘李四,張三’) DESC, examScore DESC;

        四、漢字拼音首字母排序

        有些朋友就奇怪了,漢字排序直接使用普通的 ORDER BY 字段 ASC 輕松完事啦,為什么說鮮為人知呢。
        其實,用戶創建表字段使用 GBK 字符集時,直接使用ORDER BY 字段 ASC 可以迎刃而解,有些用戶為了防止亂碼,使用了 utf8 字符集,簡單的排序語句就無能為力了(如下左圖),因此在排序時把字段轉換為 GBK 就OK了(如下右圖)。

        語句 ORDER BY studentName ASC ORDER BY CONVERT(studentName USING GBK) ASC
        效果 MySQL少有人知的排序方式 MySQL少有人知的排序方式

        五、猜你喜歡

        • MySQL遠程連接報錯1130解決方法
        • MySQL配置主從同步備份
        • 使用過濾器防止SQL注入

        相關免費學習推薦:mysql數據庫(視頻)

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 色偷偷888欧美精品久久久| 久久久久人妻精品一区三寸蜜桃| 91热成人精品国产免费| 亚洲精品无码AV中文字幕电影网站| 九九热精品在线| 久久永久免费人妻精品下载| 精品人体无码一区二区三区| 精品视频第一页| 久久精品无码专区免费青青| 日本欧美国产精品第一页久久 | 国产精品一级毛片无码视频| 国产成人无码久久久精品一| 亚洲国产一成人久久精品| 久久久久久久亚洲精品| 国产精品 视频一区 二区三区| 国产福利视精品永久免费| 久久精品国产亚洲av麻豆小说| 亚洲国产精品狼友中文久久久| 精品人妻少妇一区二区三区| 国产成人精品久久亚洲| 777久久精品一区二区三区无码| 国产成人精品久久一区二区三区| 久久精品国产亚洲AV无码麻豆 | 99精品人妻无码专区在线视频区| 亚洲欧洲美洲无码精品VA| 亚洲午夜精品久久久久久app| 欧美精品在线免费| 精品人妻无码专区中文字幕| 精品国产午夜肉伦伦影院| 国产精品制服丝袜亚洲欧美| 国产在线精品国自产拍影院 | 高清日韩精品一区二区三区| 色播精品免费小视频| 99在线观看视频免费精品9| 99久久亚洲综合精品成人 | 91精品国产福利在线观看| 欧美精品华人在线| 99久久精品国产一区二区三区| 国产精品一区二区三区免费 | 国产精品女同一区二区久久| 国产福利精品视频自拍|