<img src="https://img.php.cn/upload/article/202102/09/2021020910000799574.jpg" alt="MySQL少有人知的排序方式" >
#免費學習推薦:mysql影片教學
#ORDER BY 字段名升序/降序
,相信進來的朋友都認識這個排序語句,但遇到一些特殊的排序,單單使用字段名就無法滿足需求了,下面給大家介紹幾個我遇到過的排序方法:
一、準備工作
#為了更好示範與理解,先準備一張學生表,加入編號、姓名、成績三個字段,插入幾條數據,如圖:
二、條件排序
街上賣菜的阿姨都能敲,直接使用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 |
效果 |
##三、自訂排序
語句一: | ORDER BY FIELD(studentName,'張三','李四') ASC, examScore DESC;||
---|---|---|
ORDER BY FIELD(studentName,'李四','張三') DESC, examScore DESC; | #結果果然正中下懷(如下右圖)。 |
效果
ORDER BY FIND_IN_SET(studentName,'李四,張三') DESC, examScore DESC; | 四、漢字拼音首字母排序 | |
---|---|---|
輕鬆完事啦,為什麼說鮮為人知呢。 | 其實,使用者建立表格欄位使用GBK 字元集時,直接使用ORDER BY 欄位ASC 可以迎刃而解,有些使用者為了防止亂碼,使用了utf8 字元集,簡單的排序語句就無能為力了(如下左圖),因此在排序時把欄位轉換為GBK 就OK了(如下右圖)。 |
ORDER BY CONVERT(studentName USING GBK) ASC
MySQL遠端連線錯誤1130解決方法######MySQL設定主從同步備份######使用篩選器防止SQL注入####### #########相關免費學習推薦:#########mysql資料庫##########(影片)#########
以上是MySQL少有人知的排序方式的詳細內容。更多資訊請關注PHP中文網其他相關文章!