欧美亚洲中文,在线国自产视频,欧洲一区在线观看视频,亚洲综合中文字幕在线观看

      1. <dfn id="rfwes"></dfn>
          <object id="rfwes"></object>
        1. 站長資訊網(wǎng)
          最全最豐富的資訊網(wǎng)站

          MySQL少有人知的排序方式

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

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

          一、準備工作

          為了更好演示與理解,先準備一張學生表,加入編號、姓名、成績?nèi)齻€字段,插入幾條數(shù)據(jù),如圖:
          MySQL少有人知的排序方式

          二、條件排序

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

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

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

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

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

          三、自定義排序

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

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

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

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

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

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

          后來發(fā)現(xiàn) FIND_IN_SET 函數(shù)也能實現(xiàn),而且使用100萬條數(shù)據(jù)測試,F(xiàn)IND_IN_SET 性能更優(yōu)。

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

          四、漢字拼音首字母排序

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

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

          五、猜你喜歡

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

          相關(guān)免費學習推薦:mysql數(shù)據(jù)庫(視頻)

          贊(0)
          分享到: 更多 (0)
          網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號